package me.j360.boot.advance; import org.apache.activemq.ActiveMQXAConnectionFactory; import org.apache.activemq.command.ActiveMQQueue; import org.apache.catalina.Context; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.ErrorPage; import org.springframework.boot.context.embedded.FilterRegistrationBean; import org.springframework.boot.context.embedded.ServletContextInitializer; import org.springframework.boot.context.embedded.tomcat.TomcatContextCustomizer; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.boot.context.web.SpringBootServletInitializer; import org.springframework.boot.jta.atomikos.AtomikosDataSourceBean; import org.springframework.boot.orm.jpa.EntityScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.http.HttpStatus; import org.springframework.jms.config.DefaultJmsListenerContainerFactory; import org.springframework.jms.config.JmsListenerContainerFactory; import org.springframework.orm.hibernate4.LocalSessionFactoryBean; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; import org.springframework.session.web.http.SessionRepositoryFilter; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.jta.JtaTransactionManager; import org.springframework.web.filter.CharacterEncodingFilter; import org.springframework.web.filter.DelegatingFilterProxy; import redis.clients.jedis.JedisPoolConfig; import javax.jms.Queue; import javax.jms.Session; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.sql.DataSource; import javax.transaction.TransactionManager; import javax.transaction.UserTransaction; import java.util.Arrays; import java.util.Properties; /** * Created with j360-boot -> me.j360.springboot.simple. * User: min_xu * Date: 2015/7/29 * Time: 10:18 * 说明:等同于SpringContext.xml作用 * 1、使用SpringBootServletInitializer spring boot封装的入口 * 2、使用WebMvcConfigurerAdapter spring mvc的入口,需要自己去封装 */ @EntityScan("me.j360") @ComponentScan("me.j360") @EnableAutoConfiguration @Configuration @EnableTransactionManagement @EnableRedisHttpSession public class J360MainConfiguration extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(J360MainConfiguration.class); } @Autowired private DataSource dataSource; private CharacterEncodingFilter characterEncodingFilter() { final CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); return characterEncodingFilter; } @Bean public FilterRegistrationBean j360FilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(characterEncodingFilter()); return registration; } @Bean public ServletContextInitializer initializer() { return new ServletContextInitializer() { public void onStartup(ServletContext servletContext) throws ServletException { } }; } //此处需要配置Jedis信息,默认的是本地的localhost //@Bean public JedisConnectionFactory connectionFactory() { JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); return new JedisConnectionFactory(jedisPoolConfig); } }