rexian

咨询电话:023-6276-4481

联系方式

电 话:023-6276-4481

邮箱:broiling@qq.com

地址:重庆市南岸区亚太商谷6幢25-2

当前位置:网站首页 > 技术文章 > SpringBoot中使用核心服务项目问题

SpringBoot中使用核心服务项目问题

编辑:pansiqin 发表时间:2018-04-03 12:39:21
pansiqin

背景:

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