1.SpringBoot介绍
首先,介绍一下SpringBoot,SpringBoot主要有两大功能:自动配置和一中starter模块。
自动配置使用:SpringBoot项目会通过@EnableAutoConfiguration开启自动配置,若没有次注解自动配置的关闭的。@SpringBootApplication会引入@EnableAutoConfiguration,所以我们不必另外添加。
自动配置原理:自动配置时通过Spring-core模块里的SpringFactoryLoader加载各个包下/META-INF下名为spring.factories配置文件,并通过key找到自动配置类,然后根据@Condition进行配置。
starter模块介绍:starter模块是通过pom.xml让众多依赖包聚合到一起,使用时只需要导入starter模块,例如
另外,SpringBoot是支持打war包的,但是war包的运行环境必须是Servlet3.0+的。
2.问题和原因以及措施
开发环境:我们开发的时候是用SpringBoot开发的,通过启动类启动
生产环境:我们的线上服务器为IBM的was,必须使用war包,而且使用的是Servlet2.x的。
结果:我们用maven 打包成war包时,出现各种错误,不是这个bean没有就是那个bean没有。
原因:我们用SpringBoot开发时,SpringBoot会自动帮我们配置好,当我们用maven打成war时,去掉了SpringBoot的启动类,这就相当于去掉了SpringBoot的自动配置功能,所以会出现以上情况。
措施:模仿SpringBoot自己配置手动添加配置类。