激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲免费永久 | 成人在线免费小视频 | 成人免费av在线 | 草草视频免费 | 欧美视频一级 | 久草在线视频首页 | 久久精品99北条麻妃 | 国产一区二区三区视频免费 | 欧美一级视频免费看 | 亚洲一区二区三区四区精品 | 亚洲第一视频 | 美女羞羞视频网站 | 欧美成在线视频 | 久久免费视屏 | 91网站在线播放 | 国产超碰人人爽人人做人人爱 | 男女隐私免费视频 | 天天夜碰日日摸日日澡性色av | 日韩电影视频 | 欧美日韩在线播放一区 | 视屏一区| 中文字幕免费一区 | 久久精品视频黄色 | 国产高潮好爽受不了了夜色 | 久久久免费电影 | 成人免费一区二区三区视频网站 | 中文字幕线观看 | 日韩黄色一级视频 | 国产成人高清在线观看 | 欧美韩国日本在线 | 黄污在线观看 | 国产亚洲精品yxsp | 亚洲精久| 91久久91久久精品免观看 | 久草视频中文 | 精品一区二区三区在线视频 | 国产三级在线观看a | 国色天香综合网 | 一级成人欧美一区在线观看 | 色999久久久精品人人澡69 | 毛片在线免费视频 |