package org.springboot.sample; import javax.annotation.PostConstruct; import javax.sql.DataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springboot.sample.datasource.DynamicDataSourceRegister; import org.springboot.sample.servlet.MyServlet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.embedded.ServletRegistrationBean; import org.springframework.boot.context.web.SpringBootServletInitializer; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; @EnableAsync //支持Servlet异步 @SpringBootApplication @ServletComponentScan @EnableTransactionManagement // 支持事务 @Import({DynamicDataSourceRegister.class}) // 注册动态多数据源 public class SpringBootSampleApplication extends SpringBootServletInitializer { private static final Logger logger = LoggerFactory.getLogger(SpringBootSampleApplication.class); @Bean public PlatformTransactionManager txManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SpringBootSampleApplication.class); } @PostConstruct public void logTest() { logger.debug("日志输出测试 Debug"); logger.trace("日志输出测试 Trace"); logger.info("日志输出测试 Info"); } /** * 使用代码注册Servlet(不需要@ServletComponentScan注解) * * @return * @author SHANHY * @create 2016年1月6日 */ @Bean(name = "test") public ServletRegistrationBean servletRegistrationBean() { return new ServletRegistrationBean(new MyServlet(), "/xs/*");// ServletName默认值为首字母小写,即myServlet } /** * 修改DispatcherServlet默认配置 * * @param dispatcherServlet * @return * @author SHANHY * @create 2016年1月6日 */ // @Bean // public ServletRegistrationBean dispatcherRegistration(DispatcherServlet // dispatcherServlet) { // ServletRegistrationBean registration = new // ServletRegistrationBean(dispatcherServlet); // registration.getUrlMappings().clear(); // registration.addUrlMappings("*.do"); // registration.addUrlMappings("*.json"); // return registration; // } public static void main(String[] args) { SpringApplication.run(SpringBootSampleApplication.class, args); } }