1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      SpringBoot屬性配置和自定義屬性配置的示例分析

      這篇文章給大家分享的是有關(guān)Spring Boot屬性配置和自定義屬性配置的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

      成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供拱墅網(wǎng)站建設(shè)、拱墅做網(wǎng)站、拱墅網(wǎng)站設(shè)計、拱墅網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、拱墅企業(yè)網(wǎng)站模板建站服務,十年拱墅做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務。

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

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

      一、修改默認配置

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

      server.port=8888

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

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

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

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

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

      二、自定義屬性配置

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

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

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

      2、編寫B(tài)ean類,加載屬性

      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
       */
      @Component
      public 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="") 設(shè)置前綴,屬性上不需要添加注解。

      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
       */
      @RestController
      public 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的內(nèi)容。

      三、application.properties 屬性配置詳解

      1、參數(shù)引用與random隨機數(shù)方法的使用

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

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

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

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

      2、多環(huán)境配置

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

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

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

      application-dev.properties   //開發(fā)環(huán)境的配置文件
      application-test.properties   //測試環(huán)境的配置文件
      application-prod.properties   //生產(chǎn)環(huán)境的配置文件

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

      在application.properties添加:

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

      添加spring.profiles.active=dev后啟動應用,會發(fā)現(xiàn)引用了dev的這份配置信息。

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

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

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

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

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

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

      補充:

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

      新建application.yml代替application.properties

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

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

      感謝各位的閱讀!關(guān)于“Spring Boot屬性配置和自定義屬性配置的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


      網(wǎng)站題目:SpringBoot屬性配置和自定義屬性配置的示例分析
      當前地址:http://ef60e0e.cn/article/jighgg.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        辰溪县| 巫山县| 玉龙| 湖南省| 綦江县| 甘德县| 白玉县| 河津市| 苏尼特左旗| 德江县| 任丘市| 富裕县| 洞口县| 张家界市| 平舆县| 保德县| 利津县| 怀仁县| 鄂州市| 邯郸县| 泸州市| 夹江县| 福海县| 平顺县| 三门县| 襄城县| 乌兰察布市| 崇阳县| 黄浦区| 通州市| 皋兰县| 翁牛特旗| 灌南县| 出国| 莱阳市| 灵石县| 类乌齐县| 大渡口区| 五华县| 黔西县| 鸡东县|