SpringBoot入門系列篇(十):改變啓動類自動掃描的包

前情提要

之前的系列篇每篇都有創建並啓動一個啓動類,主要是用於自動掃描並實例化所有的bean,而啓動類的掃描默認是掃描與該啓動類同包以及其子包下的類,有時候我們還需要修改或者說是添加自動掃描的包的位置,接下來就通過一個簡單的例子來講解如何實現


改變啓動類自動掃描的包

改變啓動類自動掃描的包的原理其實很簡單,就是通過ComponentScan註解來指定需要掃描的包basePackages,也可以直接指定需要掃描的類basePackageClasses
下面我在項目中創建了兩個包:org.test1和org.test2,創建的啓動類Main.java至於org.test1下面,那麼在使用啓動類默認的自動掃描的包時,org.test2包下的註解類是不會被掃描的,在Main.java使用ComponentScan註解即可指定掃描org.test2下的註解也被掃描了,代碼如下:
package org.framework.demo.section1;

import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.ComponentScan;

/**
 * 在SpringBoot中簡單使用Servlet
 * 通過註解註冊Servlet
 * @author chengxi
 */
@SpringBootApplication
//改變自動掃描的包
@ComponentScan(basePackages = {"org.test1",
        "org.test2"})
public class ServletApp2 {

    public static void main(String[] args){

        //關閉banner的輸出
        SpringApplication app = new SpringApplication(ServletApp2.class);
//        app.setBannerMode(Banner.Mode.OFF);
        app.run(args);
    }
}
在啓動類中添加了該註解之後,即可掃描org.test2不同包下的註解類了,這裏需要注意的是:在修改了自動掃描的包的情況下,默認的自動掃描與啓動類同包以及子包下的註解類就不生效了,如果還想要自動掃描與啓動類同包以及子包下的註解類的話,就需要手動加上,這裏就加上了org.test1


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章