亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

淺談Spring Boot 屬性配置和自定義屬性配置

2024-07-14 08:40:11
字體:
來源:轉載
供稿:網友

在使用spring boot過程中,可以發現項目中只需要極少的配置就能完成相應的功能,這歸功于spring boot中的模塊化配置,在pom.xml中依賴的每個Starter都有默認配置,而這些默認配置足以滿足正常的功能開發。

如果需要修改自定義修改默認配置,spring boot 提供了很簡便的方法,只需要在application.properties 中添加修改相應的配置。(spring boot啟動的時候會讀取application.properties這份默認配置)

一、修改默認配置

例1、spring boot 開發web應用的時候,默認tomcat的啟動端口為8080,如果需要修改默認的端口,則需要在application.properties 添加以下記錄:

server.port=8888

重啟項目,啟動日志可以看到:Tomcat started on port(s): 8888 (http) 啟動端口為8888,瀏覽器中訪問 http://localhost:8888 能正常訪問。

例2、spring boot 開發中的數據庫連接信息配置(這里使用com.alibaba 的 druid), 在application.properties 添加以下記錄:

druid.url=jdbc:mysql://192.168.0.20:3306/testdruid.driver-class=com.mysql.jdbc.Driverdruid.username=rootdruid.password=123456druid.initial-size=1druid.min-idle=1druid.max-active=20druid.test-on-borrow=true

以上兩個例子,說明了如需修改starter模塊中的默認配置,只需要在在application.properties 添加需要修改的配置即可。

附: application.properties 全部配置項,點擊查看Spring Boot 所有配置說明

二、自定義屬性配置

在application.properties中除了可以修改默認配置,我們還可以在這配置自定義的屬性,并在實體bean中加載出來。

1、在application.properties中添加自定義屬性配置

com.sam.name=samcom.sam.age=11com.sam.desc=magical sam

2、編寫Bean類,加載屬性

Sam類需要添加@Component注解,讓spring在啟動的時候掃描到該類,并添加到spring容器中。

第一種:使用spring支持的@Value()加載

package com.sam.demo.conf;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;/** * @author sam * @since 2017/7/15 */@Componentpublic class Sam {  //獲取application.properties的屬性  @Value("${com.sam.name}")  private String name;  @Value("${com.sam.age}")  private int age;  @Value("${com.sam.desc}")  private String desc;    //getter & setter}

第二種:使用@ConfigurationProperties(prefix="") 設置前綴,屬性上不需要添加注解。

package com.sam.demo.conf;import org.springframework.stereotype.Component;/** * @author sam * @since 2017/7/15 */@Component@ConfigurationProperties(prefix = "com.sam")public class Sam {  private String name;  private int age;  private String desc;  //getter & setter}

3、在controller中注入并使用Sam這個Bean。

package com.sam.demo.controller;import com.sam.demo.conf.Sam;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * @author sam * @since 2017/7/14 */@RestControllerpublic class IndexController {  @Autowired  private Sam sam;  @RequestMapping("/index")  public String index() {    System.out.println(sam.getName() + " " + sam.getAge() + " " + sam.getDesc());    return "index";  }}

瀏覽器訪問:http://localhost:8080/index ,控制臺正常打印出sam的內容。

三、application.properties 屬性配置詳解

1、參數引用與random隨機數方法的使用

在application.properties內可以直接通過${}引用其他屬性的值,如下:

com.sam.name=samcom.sam.age=11com.sam.desc=${name} is ${age} years old. 

在application.properties中如果需要獲取隨機數,可以通過${random},如下:

#獲取隨機字符串com.sam.randomValue=${random.value}#獲取隨機字符串:${random.value}#獲取隨機int:${random.int}#獲取10以內的隨機數:${random.int(10)}#獲取10-20的隨機數:${random.int[10,20]}#獲取隨機long:${random.long}#獲取隨機uuid:${random.uuid}

2、多環境配置

實際開發中可能會有不同的環境,有開發環境、測試環境、生成環境。對于每個環境相關配置都可能有所不同,如:數據庫信息、端口配置、本地路徑配置等。

如果每次切換不同環境都需要修改application.properties,那么操作是十分繁瑣的。在spring boot中提供了多環境配置,使得我們切換環境變得簡便。

在application.properties同目錄下新建一下三個文件:

application-dev.properties   //開發環境的配置文件application-test.properties   //測試環境的配置文件application-prod.properties   //生產環境的配置文件

上面三個文件分別對應了 開發、測試、生產 的配置內容,接下來就是應該怎么選擇性引用這些配置了。

在application.properties添加:

spring.profiles.active=dev#引用測試的配置文件#spring.profiles.active=test#引用生產的配置文件#spring.profiles.active=prod

添加spring.profiles.active=dev后啟動應用,會發現引用了dev的這份配置信息。

可以看出上面三個配置文件符合 application-{profile}.properties 格式,而在application.properties添加的spring.profiles.active=dev 中的dev正是上面配置文件中的 profile。根據具體環境進行切換即刻。

用命令運行jar包啟動應用的時候,可以指定相應的配置.

java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

附:配置方式和優先級
這些方式優先級如下:
a. 命令行參數
b. 來自java:comp/env的JNDI屬性
c. Java系統屬性(System.getProperties())
d. 操作系統環境變量
e. RandomValuePropertySource配置的random.*屬性值
f. jar外部的application-{profile}.properties或application.yml(帶spring.profile)配置文件
g. jar內部的application-{profile}.properties或application.yml(帶spring.profile)配置文件
h. jar外部的application.properties或application.yml(不帶spring.profile)配置文件
i. jar內部的application.properties或application.yml(不帶spring.profile)配置文件
j. @Configuration注解類上的@PropertySource
k. 通過SpringApplication.setDefaultProperties指定的默認屬性

注:命令行參數這種jar包指定參數啟動應用的方式,可能是不安全的,我們可以設置禁止這種方式啟動應用,如下:

springApplication.setAddCommandLineProperties(false);
package com.sam.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class DemoApplication {  public static void main(String[] args) {//    SpringApplication.run(DemoApplication.class, args);    SpringApplication springApplication = new SpringApplication(DemoApplication.class);    //禁止命令行設置參數    springApplication.setAddCommandLineProperties(false);    springApplication.run(args);  }}

補充:

在spring boot 中配置除了支持 application.properties,還支持application.yml的配置方式,如下:

新建application.yml代替application.properties

server: port: 9999com: sam:  name: sam  age: 11  desc: magical sam

注意:port: 9999 中間是有空格的,yml語法請參考:yml配置文件用法

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
乱亲女秽乱长久久久| 琪琪亚洲精品午夜在线| 黄网站色欧美视频| 91精品国产九九九久久久亚洲| 青青久久aⅴ北条麻妃| 国产精品视频免费观看www| 97视频在线观看亚洲| 日韩av免费在线观看| 欧美成年人视频网站欧美| 国产va免费精品高清在线| 国产精品网红福利| 亚洲一区二区三区香蕉| 国产69精品久久久久9999| 国产精品嫩草视频| 中文字幕亚洲一区在线观看| 26uuu亚洲伊人春色| 久久伊人色综合| 亚洲日韩欧美视频一区| 欧美一级高清免费播放| 亚洲欧美日韩中文在线| 欧美日韩一区免费| 日韩大片在线观看视频| 日本国产高清不卡| 欧美另类69精品久久久久9999| 国产亚洲精品高潮| 亚洲国产精品久久精品怡红院| 国产精品青青在线观看爽香蕉| 久久久久久高潮国产精品视| 免费av在线一区| 国产精品高潮呻吟久久av无限| 成人福利网站在线观看11| 日韩在线免费av| 成人综合国产精品| 欧美国产日韩免费| 亚洲激情视频网| 黑人狂躁日本妞一区二区三区| 日本欧美国产在线| 中文字幕久久久| 国产精品jvid在线观看蜜臀| 欧美自拍大量在线观看| 亚洲自拍小视频| www.国产一区| 欧美精品午夜视频| 欧美性xxxx18| 日本在线精品视频| 久久亚洲电影天堂| 亚洲女人被黑人巨大进入al| 日韩精品免费在线| 日韩电影免费在线观看中文字幕| 成人免费自拍视频| 一区二区成人av| 日韩免费看的电影电视剧大全| 亚洲高清免费观看高清完整版| 亚洲老头同性xxxxx| 26uuu日韩精品一区二区| 欧美老女人bb| 精品国产一区二区三区久久狼5月| 亚洲电影在线观看| 国产精品久久婷婷六月丁香| 国产偷亚洲偷欧美偷精品| 日韩在线观看你懂的| 国产精品视频一区国模私拍| 国产精品三级美女白浆呻吟| 亚洲a级在线观看| 疯狂做受xxxx欧美肥白少妇| 国产精品无码专区在线观看| 亚洲免费小视频| 欧美一二三视频| 亚洲激情在线观看| 亚洲偷欧美偷国内偷| 日韩av成人在线| 欧美性猛交xxxx富婆| 日韩欧美在线一区| 日韩电影中文字幕一区| 亚洲欧美日本另类| 亚洲欧洲av一区二区| 国产精品视频最多的网站| 黄网动漫久久久| 欧美成人性生活| 日本欧美黄网站| 久久久久久久久国产精品| 国产精品v片在线观看不卡| 国产精品女人网站| 国产精品扒开腿做爽爽爽视频| 青青草原成人在线视频| 亚洲色图25p| 高清在线视频日韩欧美| 一本色道久久88综合亚洲精品ⅰ| 国产综合久久久久| 成人福利视频网| 九九精品在线视频| 国产欧美日韩最新| 欧美精品免费在线| 97在线观看免费高清| 国产脚交av在线一区二区| 欧美成人国产va精品日本一级| 国产精品免费小视频| 欧美在线视频免费| 国产欧美一区二区白浆黑人| 久久亚洲欧美日韩精品专区| 欧美日本啪啪无遮挡网站| 成人精品一区二区三区电影免费| 久久婷婷国产麻豆91天堂| 亚洲精品国产美女| 色婷婷综合成人| 欧美成人免费全部| 欧美中文字幕在线视频| 在线观看国产精品淫| 欧美中文字幕在线视频| 2020欧美日韩在线视频| 97视频在线观看免费高清完整版在线观看| 欧美午夜性色大片在线观看| 国产日韩欧美在线视频观看| 欧美在线视频在线播放完整版免费观看| 国产v综合v亚洲欧美久久| 在线看国产精品| 国产精品福利在线观看| 欧美洲成人男女午夜视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 91久久嫩草影院一区二区| 国产欧美在线视频| 欧美一区二区三区精品电影| 日韩在线免费av| 国产视频丨精品|在线观看| 在线视频精品一| 欧美天天综合色影久久精品| 日韩av在线电影网| 69**夜色精品国产69乱| 亚洲最大成人免费视频| 久久91精品国产91久久跳| 国产亚洲精品综合一区91| 日韩成人av网| 成人久久一区二区| 亚洲丁香久久久| 欧美亚州一区二区三区| 亚洲精品国产免费| 国产精品精品视频一区二区三区| 久久午夜a级毛片| 中文字幕精品国产| 黑人狂躁日本妞一区二区三区| 精品小视频在线| 国产精品2018| 日韩美女激情视频| 亚洲自拍欧美另类| 午夜精品免费视频| 5278欧美一区二区三区| 中文在线资源观看视频网站免费不卡| 亚洲高清久久网| 亚洲美女av网站| 国产91精品久久久久| 久久久伊人日本| 成人免费在线网址| 91色视频在线观看| 91av成人在线| 欧美有码在线视频| 国产盗摄xxxx视频xxx69| 国内免费久久久久久久久久久| 国产91ⅴ在线精品免费观看| 韩国国内大量揄拍精品视频| 日韩美女视频免费在线观看| 中文字幕亚洲色图| 久久天天躁狠狠躁夜夜躁| 国产欧美日韩免费看aⅴ视频| 亚洲影院色无极综合|