Spring Boot总结(一):@SpringBootApplication的替代方案
来源:互联网 发布:软件研发的职业规划 编辑:程序博客网 时间:2024/06/03 03:58
对Spring Boot而言,@SpringBootApplication的作用就是@Configuration, @EnableAutoConfiguration与@ComponentScan的集合,所以也会存在@EnableAutoConfiguration的粒度管理问题。
添加@EnableAutoConfiguration时(请务必注意,一个Spring Boot程序最好只添加唯一一个这样的注解),由于Spring Boot是根据程序加载的jar包自动添加配置,所以就会导致自动配置一些不必要的配置,性能浪费倒是小事,关键是控制力度与问题难以追踪。
基于以上的原因,一般而言,@EnableAutoConfiguration只适用于初学者,对控制力与把控力要求的架构师或高级用户显然是不合适的,所以有必要找到@SpringBootApplication的替代方案,自己控制Bean创建的过程与数量,替代方案如下:
//@SpringBootApplication@Configuration@ImportResource({"classpath:/META-INF/service-context.xml", "classpath:/META-INF/mvc-context.xml"})public class AppBooter extends SpringBootServletInitializer { /** * 所有配置信息的入口 * @param application * @return */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { // 激活配置信息 return application.sources(AppBooter.class); } /** * 启动应用程序 * @param args */ public static void main(String[] args) { SpringApplication.run(AppBooter.class, args); } /** * 非常重要,激活内置的Servlet容器 */ @Bean public EmbeddedServletContainerFactory servletContainer() { TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); // 可以操控到更细力度 factory.setPort(9000); factory.setSessionTimeout(10, TimeUnit.MINUTES); factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/notfound.html")); return factory; }}
结论
其实,在实际生产环境中,我们很少会直接发布基于Spring Boot的WEB应用程序,因为为此单独开发一套集群管理方案还是开销还是太大,所以建议将Spring Boot作为开发调试环境使用。
阅读全文
0 0
- Spring Boot总结(一):@SpringBootApplication的替代方案
- Spring Boot的@SpringBootApplication、@EnableAutoConfiguration、@ComponentScan注解
- Spring的替代方案
- Spring的替代方案
- Spring的替代方案
- Spring的替代方案
- Spring Boot使用@SpringBootApplication解惑
- spring boot(2)-@SpringBootApplication详解
- Spring Boot 学习21--使用@SpringBootApplication注解
- Spring Boot参考文档(10)@SpringBootApplication
- (14)spring boot中@SpringBootApplication注解
- spring boot简单教程(2)-@SpringBootApplication详解
- spring boot注解@SpringBootApplication、@Controller、@RestController
- 32. Spring Boot使用@SpringBootApplication注解【从零开始学Spring Boot】
- 32. Spring Boot使用@SpringBootApplication注解【从零开始学Spring Boot】
- Spring : OpenSessionInViewFilter 的配置及替代方案
- Spring boot源码分析-SpringBootApplication注解(8)
- (32)Spring Boot使用@SpringBootApplication注解,从零开始学Spring Boot
- tcp协议系列文章(1):提纲挈领
- elasticsearch基础
- 主席树解决区间第k大
- 欢迎使用CSDN-markdown编辑器
- LeetCode 8 String to Integer (atoi)
- Spring Boot总结(一):@SpringBootApplication的替代方案
- 算法 排序算法之交换排序--冒泡排序和快速排序
- easyui ComboBox设置默认值
- 静态库和动态库的区别详解
- 记录
- linux基本原则
- RNN介绍
- 解决办法: Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found.
- 可逆素数(难度:半颗星)