package com.forgon.disinfectsystem; import com.forgon.disinfectsystem.springboot.WebRootInitializer; import com.forgon.tools.SpringBeanManger; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.context.annotation.ImportResource; import org.springframework.transaction.annotation.EnableTransactionManagement; import java.util.Arrays; /** * @author Terry Kwan * Spring Boot的Application * */ @ImportResource({ "classpath:spring/applicationContext-acegi-security.xml", //加载项目下的spring配置文件 "file:${webROOT}/disinfectsystem/config/${project}/spring/*.xml" }) @SpringBootApplication() @EnableTransactionManagement @EnableAspectJAutoProxy(proxyTargetClass = true) @ComponentScan(basePackages = {"com.forgon"} , basePackageClasses = {SpringBeanManger.class}) //@EnableAspectJAutoProxy(proxyTargetClass = true) public class SstsApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication app = new SpringApplication(SstsApplication.class); // 注册WebRootInitializer // 启动时 Spring Environment 中就会包含 "webROOT" 属性,其值来自 com.forgon.tools.Path.webROOT app.addInitializers(new WebRootInitializer()); app.run(args); } /** * 重写 configure 方法,以便在外部 Servlet 容器中启动应用 */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SstsApplication.class) .initializers(new WebRootInitializer()); } // // // 注册 Spring Security 过滤器 // @Bean // public FilterRegistrationBean securityFilterChain() { // FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); // registrationBean.setFilter(new DelegatingFilterProxy("springSecurityFilterChain")); // registrationBean.addUrlPatterns("/*"); // return registrationBean; // } // 打印 Spring 注册的所有 Bean // @Bean // public CommandLineRunner commandLineRunner(ApplicationContext ctx) { // return args -> { // System.out.println("========= Spring Boot 发现的 Bean ========="); // System.out.flush(); // String[] beanNames = ctx.getBeanDefinitionNames(); // Arrays.sort(beanNames); // for (String beanName : beanNames) { // System.out.println(beanName); // System.out.flush(); // } // }; // } }