咨詢電話:023-6276-4481
熱門文章
電 話:023-6276-4481
郵箱:broiling@qq.com
地址:重慶市南岸區(qū)亞太商谷6幢25-2
背景:
A項(xiàng)目是一個(gè)SpringBoot架構(gòu)的項(xiàng)目,是一個(gè)對外提供api服務(wù),使用shiro作為權(quán)限管理,mybatis作為數(shù)據(jù)層。項(xiàng)目包名稱com.cc.dd
B項(xiàng)目是一個(gè)Springmvc+mybatis架構(gòu)的項(xiàng)目,分為四層,controller,service,dao,entity 4個(gè)模塊,項(xiàng)目包名com.aaa.bbb,使用xml文件配置beans。
現(xiàn)在把B項(xiàng)目service,dao,entity 3個(gè)模塊,使用maven編譯3個(gè)jar包,在A項(xiàng)目中使用,能夠讓A項(xiàng)目調(diào)研B項(xiàng)目service層提供的服務(wù)。
問題1:SpringBoot如何管理引入的3個(gè)jar包,也就是SpringBoot如何初始化3個(gè)jar中的bean,只有初始化之后才能使用。
在springBoot啟動(dòng)類直接導(dǎo)入B項(xiàng)目管理管理beans的xml文件,因?yàn)锽項(xiàng)目采用的spring+beans.xml的模式管理bean,所以初始化bean的工作全部都xml文件中配置,因此springBoot只需要根據(jù)xml文件就能夠初始化B項(xiàng)目的實(shí)例。如下代碼,xml文件根據(jù)項(xiàng)目實(shí)際名稱配置。
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項(xiàng)目采用了spring注解的方式 管理Beans,配置方式就是下面這樣了 。增加掃描A項(xiàng)目包的路徑,因?yàn)閟pringBoot默認(rèn)只掃描啟動(dòng)內(nèi)所在的包路徑及其子目錄,A項(xiàng)目的包結(jié)構(gòu)和B項(xiàng)目完全不一樣,如果不手動(dòng)增加組件掃描路徑,
SpringBoot不會(huì)主動(dòng)數(shù)掃描你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
|