Spring Boot
Spring Boot
2017-06-22 15:16
阅读:51
评论:0
spring boot项目依赖spring mvc项目注入失败问题
maven使用不同框架搭建的不同项目 项目1:spring boot搭建的war项目(这是maven的聚合项目) 项目2:spring mvc搭建的jar项目(这也是maven的聚合项目,核心项目) war项目将jar项目依赖进来 项目是spring boot配置 @SpringBootApplic...
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mobile/css/edit_views_html-db03dd5f8c.min.css">
<p>maven使用不同框架搭建的不同项目</p>
项目1:spring boot搭建的war项目(这是maven的聚合项目)
项目2:spring mvc搭建的jar项目(这也是maven的聚合项目,核心项目)
war项目将jar项目依赖进来
项目是spring boot配置
@SpringBootApplication public class Application extends SpringBootServletInitializer {@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } public static void main(String[] args) { SpringApplication.run(Application.class, args); }
}
如果执行这个程序来启动war项目,那么你在war项目中注入核心项目的类就会报注入失败
是因为核心项目是使用maven搭建的jar类型 项目,最终会被打包成jar包,当启动项目后spring boot并没有将核心项目中的类注入到spring容器中,
因此启动项目后会报注入失败。
解决方案很简单,只要在Appliction这个类中加上扫描注解即可
其中@ComponentScan(basePackages={"com"})指定扫描的包,@SpringBootApplication @ComponentScan(basePackages = {"com"}) public class Application extends SpringBootServletInitializer {@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } public static void main(String[] args) { SpringApplication.run(Application.class, args); }
}
war项目我的包定义格式为com.xx.xx
核心项目包的定义格式也是com.xx.xx
所以注解扫描的包都扫描到这两个项目中的相关注解
加上注解后,刚接触spring boot的我,问题得到解决了