热门文章
电 话:023-6276-4481
邮箱:broiling@qq.com
地址:重庆市南岸区亚太商谷6幢25-2
背景:
A项目是一个SpringBoot架构的项目,是一个对外提供api服务,使用shiro作为权限管理,mybatis作为数据层。项目包名称com.cc.dd
B项目是一个Springmvc+mybatis架构的项目,分为四层,controller,service,dao,entity 4个模块,项目包名com.aaa.bbb,使用xml文件配置beans。
现在把B项目service,dao,entity 3个模块,使用maven编译3个jar包,在A项目中使用,能够让A项目调研B项目service层提供的服务。
问题1:SpringBoot如何管理引入的3个jar包,也就是SpringBoot如何初始化3个jar中的bean,只有初始化之后才能使用。
在springBoot启动类直接导入B项目管理管理beans的xml文件,因为B项目采用的spring+beans.xml的模式管理bean,所以初始化bean的工作全部都xml文件中配置,因此springBoot只需要根据xml文件就能够初始化B项目的实例。如下代码,xml文件根据项目实际名称配置。
1 2 3 4 5 6 7 8 | @ImportResource (locations = { "classpath*:*-Context.xml" }) @SpringBootApplication public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application. class , args); } } |
问题2 :如果A项目采用了spring注解的方式 管理Beans,配置方式就是下面这样了 。增加扫描A项目包的路径,因为springBoot默认只扫描启动内所在的包路径及其子目录,A项目的包结构和B项目完全不一样,如果不手动增加组件扫描路径,
SpringBoot不会主动数扫描你jar中的bean类的。
1 2 3 4 5 6 7 | @SpringBootApplication @ComponentScan (basePackages={ "com.cc.dd" }) public class Application { public static <code class="java keyword" style="font-family: Monaco, Menlo, Consolas, "Courier New", monospace; box-sizing: content-box !important; border: 0px !important; margin: 0px !important; outline: 0px !important; padding: 0px !important; vertical-align: baseline !important; background: none !important; color: rgb(150, 221
|