第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

第八節(jié):SpringBoot指定配置文件配置三

標(biāo)簽:
Java SpringBoot

SpringBoot配置属性的规则

  • 通过.分离各个元素
  • 最后一个.将前缀与属性名称分开
  • 必须是字母(az)和数字(0-9)
  • 必须是小写字母
  • 用连字符-来分隔单词
  • 唯一允许的其他字符是[和],用于List的索引
  • 不能以数字开头

相同的配置项

Spring Boot 2.x 加载配置文件的时候会移除特殊字符并且还会将配置均用全小写的方式进行匹配和加载。

application.properties

com.rumenz.id-name=rumenz
com.rumenz.id_name=rumenz
com.rumenz.idName=rumenz
com.rumenz.idname=rumenz

测试

package com.rumenz.lession8.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @className: RumenzController
 * @description: TODO 类描述
 * @author: 入门小站 rumenz.com
 * @date: 2021/11/8
 **/
@Controller
@RequestMapping("/rumenz")
public class RumenzController {


    @Value("${com.rumenz.idname}")
    private String comRumenzIdName;

    @RequestMapping("/index")
    @ResponseBody
    public String index(){
        return comRumenzIdName;
    }
}

浏览器访问http://127.0.0.1:8080/rumenz/index,返回rumenz

以上4个配置项是等价的,推荐全小写中间用-分割。

配置文件的优先级

application.properties和application.yml文件可以在放在以下几个位置。

  • 外部:应用程序运行目录的config子目录
  • 外部:应用程序运行目录的跟目录
  • 内部:在config包里面classpath:/config/
  • 内部:在classpath根目录classpath:/
路径 参数值
/springboot-zhinan/lession8/config/application.properties com.rumenz.level=1
/springboot-zhinan/lession8/application.properties com.rumenz.level=2
/springboot-zhinan/lession8/src/main/resources/config/application.properties com.rumenz.level=3
/springboot-zhinan/lession8/src/main/resources/application.properties com.rumenz.level=4

application.properties中配置了com.rumenz.level

com.rumenz.level=1

测试

package com.rumenz.lession8.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @className: RumenzController
 * @description: TODO 类描述
 * @author: 入门小站 rumenz.com
 * @date: 2021/11/8
 **/
@Controller
@RequestMapping("/rumenz")
public class RumenzController {
    
    @Value("${com.rumenz.idname}")
    private String comRumenzIdName;

    @Value("${com.rumenz.level}")
    private String comRumenzLevel;

    @RequestMapping("/index")
    @ResponseBody
    public String index(){
        return comRumenzIdName;
    }

    @RequestMapping("/index1")
    @ResponseBody
    public String index1(){
        return comRumenzLevel;
    }

}

使用mvn clean package打包后,使用jar -jar lession8-0.0.1-SNAPSHOT.jar运行。如果上述4个地方都定义了application.properties,并且都配置了com.rumenz.level ,当我们的业务里面需要用com.rumenz.level配置项。查找的优先级是:

  • 1.先找运行目录下的config的application.properties中的com.rumenz.level,找到返回,否则下一步
  • 2.再找运行目录下的application.properties中的com.rumenz.level,找到返回否则下一步
  • 3.再找classpath下的config目录的application.propertiescom.rumenz.level,找到返回否则下一步
  • 4.再找classpath下的application.propertiescom.rumenz.level,找到就返回,找不到就报错,项目启动失败。

命令行参数配置

springboot的application.properties中可以配置一些参数,如端口号,账号,密码。如果我们想在运行的时候想临时修改运行的端口也是可以的。

java -jar lession8-0.0.1-SNAPSHOT.jar --server.port=9000

这样项目运行的端口就变成了9000,--server.port=9000相当于在application.properties中配置server.port=9000

系统环境变量

我们也可以在操作系统里面定义变量,然后通过@Value注入到Spring容器中。

package com.rumenz.lession8.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @className: RumenzController
 * @description: TODO 类描述
 * @author: 入门小站 rumenz.com
 * @date: 2021/11/8
 **/
@Controller
@RequestMapping("/rumenz")
public class RumenzController {

    //读取系统环境变量
    @Value("${PATH}")
    private String path;
    
    @RequestMapping("/index2")
    @ResponseBody
    public String index2(){
        return path;
    }
    
}

浏览器访问http://127.0.0.1:8080/rumenz/index2,返回/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/usr/local/share/dotnet:~/.dotnet/tools:/usr/local/mysql/bin:/usr/local/mysql/bin

系统属性

我们可以设置VM arguments向Spring容器传递参数值。

Idea中设置VM arguments

image-20211109215812644

image-20211109215845066

测试

package com.rumenz.lession8.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @className: RumenzController
 * @description: TODO 类描述
 * @author: 入门小站 rumenz.com
 * @date: 2021/11/8
 **/
@Controller
@RequestMapping("/rumenz")
public class RumenzController {


    @Value("${spring.test.env}")
    private String springTestEnv;

    @RequestMapping("/index3")
    @ResponseBody
    public String index3(){
        return springTestEnv;
    }

}

浏览器访问http://127.0.0.1:8080/rumenz/index3,返回test

jar包运行设置VM arguments

java -jar -Dspring.test.env=testvm lession8-0.0.1-SNAPSHOT.jar

浏览器访问http://127.0.0.1:8080/rumenz/index3,返回testvm

本小结源码地址:

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開發(fā)工程師
手記
粉絲
2
獲贊與收藏
4

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消