一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 初識Spring Boot框架之Spring Boot的自動配置

初識Spring Boot框架之Spring Boot的自動配置

2020-09-11 10:29_江南一點雨 Java教程

本篇文章主要介紹了初識Spring Boot框架之Spring Boot的自動配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

在上篇博客初識spring boot框架中我們初步見識了springboot的方便之處,很多小伙伴可能也會好奇這個spring boot是怎么實現自動配置的,那么今天我就帶小伙伴我們自己來實現一個簡單的spring boot 自動配置的案例,看看這一切到底是怎么發生的。

假設我的需求是這樣的:當我的項目中存在某個類的時候,系統自動為我配置該類的bean,同時,我這個bean的屬性還可以在application.properties中進行配置,ok,就這樣一個需求,我們來看看怎么實現。

1、新建starter的maven項目

我這里以intellij idea創建project為例,其實很簡單,創建一個maven項目,但是注意創建的時候選擇quickstart,步驟如下:

初識Spring Boot框架之Spring Boot的自動配置

初識Spring Boot框架之Spring Boot的自動配置

初識Spring Boot框架之Spring Boot的自動配置

初識Spring Boot框架之Spring Boot的自動配置

ok,這樣我們就創建好一個project了。

2.添加依賴

由于我們要使用spring boot的自動配置功能,所以在工程創建成功之后首先要添加spring boot自身的自動配置作為依賴,如下:

?
1
2
3
4
5
<dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-autoconfigure</artifactid>
 <version>1.4.2.release</version>
</dependency>

3.屬性配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@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.判斷依據類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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.自動配置類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@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文件,文件內容如下,表示設置自動配置類的位置,若有多個配置類用”,”隔開即可。:

 

復制代碼 代碼如下:

org.springframework.boot.autoconfigure.enableautoconfiguration=org.sang.helloserviceautoconfiguration

 

正常情況下我們按步驟一創建出來的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設置,然后選擇右邊的加號添加依賴,如下:

初識Spring Boot框架之Spring Boot的自動配置

初識Spring Boot框架之Spring Boot的自動配置

然后在新建module的pom.xml文件中添加如下依賴:

?
1
2
3
4
5
<dependency>
      <groupid>org.sang</groupid>
      <artifactid>org.sang.mystarter</artifactid>
      <version>1.0-snapshot</version>
    </dependency>

實際上就是我們剛剛創建的自動配置文件的坐標。然后新module的入口類中添加如下代碼:

?
1
2
3
4
5
6
7
@autowired
  private helloservice helloservice;
 
  @requestmapping("/")
  public string index(){
    return helloservice.sayhello();
  }

使用剛剛創建的helloservice,如果需要我們可以在application.properties中添加如下配置:

?
1
hello.msg = 賣花擔上看桃李, 拍酒樓頭聽管弦。

運行module,然后在瀏覽器中訪問,結果如下:

初識Spring Boot框架之Spring Boot的自動配置

ok,這就是一個簡單的自定義自動配置類。

本案例下載地址:本案例github地址

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/u012702547/article/details/53750449

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品男人影院 | 99在线精品视频 | 欧洲美女啪啪 | 国产偷啪视频一区 | bbbxxx乱大交欧美小说 | 美味情缘韩国在线观看视频 | 极品蜜桃臀美女啪啪 | 午夜国产小视频 | 欧美视频一二三区 | 久久综久久美利坚合众国 | 欧美深夜在线 | 精品成人网 | 男人肌肌捅女人肌肌 | 亚洲成人国产 | 糖心vlog麻豆精东影业传媒 | 日本久久免费大片 | 国产精品酒店视频免费看 | 国产在线看片网站 | 国产精品极品 | 91制片厂制作果冻传媒八夷 | 97久久精品午夜一区二区 | 教师系列 大桥未久在线 | 日日摸日日添日日透 | 手机在线免费观看视频 | 国产资源在线视频 | 国产欧美一区二区精品性色99 | 色播开心网 | 青青青手机在线观看 | 肉大捧一进一出视频免费播放 | 色悠久久久久综合欧美99 | bt天堂午夜国产精品 | 把老师操了 | 欧美综合亚洲图片综合区 | 欧美人在线一区二区三区 | 久久精品国产久精国产果冻传媒 | 91美女在线 | 男人的天堂欧美 | 亚洲精品国产成人中文 | 九二淫黄大片看片 | 边摸边操| 日本一在线中文字幕天堂 |