您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何實現自動配置Spring Boot框架,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
1、新建starter的Maven項目
我這里以IntelliJ IDEA創建Project為例,其實很簡單,創建一個Maven項目,但是注意創建的時候選擇quickstart,步驟如下:
OK,這樣我們就創建好一個Project了。
2.添加依賴
由于我們要使用Spring Boot的自動配置功能,所以在工程創建成功之后首先要添加Spring Boot自身的自動配置作為依賴,如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> <version>1.4.2.RELEASE</version> </dependency>
3.屬性配置
@ConfigurationProperties(prefix = "hello") public class HelloServiceProperties { private static final String MSG = "world"; private String msg = MSG; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
這里就是一個簡單的類,和上篇博客中我們提到的 類型安全的屬性獲取是一致的,這里屬性的值我們可以在application.properties中來直接設置,如果不設置的話默認為world。
4.判斷依據類
public class HelloService { private String msg; public String sayHello(){ return "hello " + msg; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
我們一會的例子就是根據這個類是否存在來創建這個類的Bean,當然這個類也可以是第三方類庫。
5.自動配置類
@Configuration @EnableConfigurationProperties(HelloServiceProperties.class) @ConditionalOnClass(HelloService.class) @ConditionalOnProperty(prefix = "hello",value = "enable",matchIfMissing = true) public class HelloServiceAutoConfiguration { @Autowired private HelloServiceProperties helloServiceProperties; @Bean public HelloService helloService() { HelloService helloService = new HelloService(); helloService.setMsg(helloServiceProperties.getMsg()); return helloService; } }
這里@ConditionalOnClass注解主要是用來判斷HelloService這個類在路徑中是否存在,在存在且容器中沒有該類的Bean的情況下系統會自動配置需要的Bean,@ConditionalOnProperty注解則表示指定的屬性要滿足的條件,在helloService方法中我們則使用了HelloServiceProperties提供的參數。
6.注冊配置
在resources目錄下新建META-INF目錄,然后在META-INF目錄下創建spring.factories文件,文件內容如下,表示設置自動配置類的位置,若有多個配置類用”,”隔開即可。:
正常情況下我們按步驟一創建出來的Project是沒有resources這個文件夾的,在IntelliJ IDEA這個工具中,我們需要先創建一個directory,然后將之設置為resources root即可,設置方式如下:選中resources目錄右鍵單擊–》Mark Directory as–》Resource Root。
7.在項目中使用
OK,經過上面幾個步驟我們的自動配置功能就算死寫好了,接下來我們要在自己的項目中來使用它了,正常情況下做好自動配置類之后我們需要將之上傳到 maven 私服上然后直接在項目中引用,也可以將之安裝到本地庫,這里我選擇后者的一個簡化方式,直接創建Module來引用這個自動配置Module(如果小伙伴是用STS或者MyEclipse之類的開發工具直接創建新工程然后添加引用類庫即可)。
創建Module方式很簡單,選中剛才的Project右鍵單擊,New一個Module,這個Module是一個SpringBoot項目(不清楚怎么創建SpringBoot項目可以查看這篇文章初識Spring Boot框架),創建成功之后選擇新建的Module按F4打開Module設置,然后選擇右邊的加號添加依賴,如下:
然后在新建Module的pom.xml文件中添加如下依賴:
<dependency> <groupId>org.sang</groupId> <artifactId>org.sang.mystarter</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
實際上就是我們剛剛創建的自動配置文件的坐標。然后新Module的入口類中添加如下代碼:
@Autowired private HelloService helloService; @RequestMapping("/") public String index(){ return helloService.sayHello(); }
使用剛剛創建的HelloService,如果需要我們可以在application.properties中添加如下配置:
hello.msg = 賣花擔上看桃李, 拍酒樓頭聽管弦。
運行Module,然后在瀏覽器中訪問,結果如下:
上述內容就是如何實現自動配置Spring Boot框架,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。