最近在看spring-boot的東西,然后搭建了spring-boot的簡單項目。但是在spring的入口處加載的時候一直加載不到。最后看了@SpringBootApplication的源碼才知道
@ComponentScan 如果不設置basePackage的話 默認會掃描包的所有類,所以最好還是寫上basePackage ,減少加載時間。默認掃描**/*.class
路徑 比如這個注解在com.first.springbootproject.springboot 下面 ,那么會掃描這個包下的所有類還有子包的所有類,比如包com.first.springbootproject.springboot.helloworld的應用。
綜上所述我們可以知道:
SpringBootApplication啟動時會默認掃描主類當前包及子包,如果需要掃描主類當前包外的其他包或不掃描當前包下的特定包或類,可通過下列屬性實現:
@ComponentScan(basePackages={"com.first.springbootproject.springboot.helloworld"})
通過上面的注釋spring在啟動的時候會按照相關的路徑進行對@Component元素的加載。不會在進行全部的掃描進行加載。占用資源的情況。
除了上面的這種改變路勁的方式之外,我們還可以通過配置xml文件,對basePackages的路勁進行設置。
1.通配符形式 <context:component-scan base-package="com.*" /> 2.全路徑 <context:component-scan base-package="com.test" />
至此我們的spring-boot項目的類加載路勁的指定設置完畢。如果想要加載多個路勁可以使用逗號分隔的形式,對類進行加載。如下這種方式:
原文地址:https://www.cnblogs.com/gxgd/p/9279447.html