这篇文章介绍的是一个jar给不同的客户部署需要改变某些秘钥的值时,可以采用application的全局变量来配置,避免多次打包的繁琐。
第一种方式
直接在application.yml里写
test:
niuBi: 芦苇
ceShi: 测试
使用的时候在类里面加上
@Value("${test.niuBi}")
private String niuBi;
@Value("${test.ceShi}")
private String ceShi;
然后就可以直接当做普通变量使用,配置文件里修改,相应也会进行更改。
第二种方式
①跟第一种一样在application.yml写入
test:
niuBi: 芦苇
ceShi: 测试
②写一个类,加上注解。
@Component
@ConfigurationProperties(prefix = TestProperties.PREFIX)
public class TestProperties {
public static final String PREFIX = "test";
private String niuBi;
private String ceShi;
public static String getPREFIX() {
return PREFIX;
public String getNiuBi() {
return niuBi;
public void setNiuBi(String niuBi) {
this.niuBi = niuBi;
public String getCeShi() {
return ceShi;
public void setCeShi(String ceShi) {
this.ceShi = ceShi;
③使用:在要使用的接口里,注入配置类,然后通过get去调用
@Autowired
TestProperties test;
test.getNiuBi();
test.getCeShi();
第二种方式相较于第一种,不用每个属性写一个,直接注入类,一劳永逸,推荐使用!!!
这篇文章介绍的是一个jar给不同的客户部署需要改变某些秘钥的值时,可以采用application的全局变量来配置,避免多次打包的繁琐。第一种方式直接在application.yml里写test: niuBi: 芦苇 ceShi: 测试使用的时候在类里面加上@Value("${test.niuBi}") private String niuBi;@Value("${test.ceShi}") private String ceShi;然后就可以直接当做普通变量使用,配
springboot配置文件定义全局变量
springboot项目中redis,mysql数据源使用的同一个,中间件服务器都是放在同一台服务器上的,所以ip地址是统一的,如果服务器需要替换,都是统一替换,那么我们还要一个个修改每个中间件的ip地址
一处修改处处生效
个人csdn博客网址:https://blog.csdn.net/shaoming314
个人博客网址:www.shaoming.club
个人gitee地址:https://gitee.com/shao_min
@Controller//在Spring中注册,表示本类是一个控制器类
public class ViewController {
@RequestMapping("toview")//完整路径url http://localhost:8080/toview
public String view(){
springboot使用Application.properties和Application.yml这两个作为全局配置文件,properties是一种常见的配置文件的形式
配置文件的作用就是来配置某些信息,修改某些默认值,在我们快速创建的springboot项目中就是Application.properties
这里引入一种新的配置文件的形式就是yaml配置文件,后缀名为yml
它以数据为中心,比json和xml更高效
比如我们要配置服务器端口号
properties要这样server.port=8888
xml要这样
而yml要这样,而不是把大量时间放在标签的开闭上边,以数据
文章目录1.局部变量2.全局变量
1.局部变量
在 def 中, 我们可以定义一个局部变量, 这个变量 a 只能在这个功能 fun 中有效, 出了这个功能, a 这个变量就不是那个局部的 a.
def fun():
a = 10
print(a)
return a+90
print(fun())
下面这个例子就验证了如果在 fun 外面调用 a, 会报错, 这表明外面的这个 print(a) 不能找到那个局部的 a, 只有全局变量再能在外面被调用, 比如 MAX_LEN.
MAX_LEN = 256
def fun():
a = 10
return a
SpringBoot的配置文件
yaml可以直接给实体类赋值
简而言之就是可以设置一个全局变量,相比于properties简单无论是赋值还是方法。但其对格式要求比较严格,空格空行等
所有的类只有在一定条件下才能生效conditionalon
SpingBoot启动时会加载大量的自动配置类
我们看我们需要的功能有没有在SpringBoot默认写好的自动配置类当中
我们再看这个自动配置类中到底配置了哪些组件(只要我们要用的组件存在在其中,我们就不需要再手动配置了)
给容器中自动配置类
在 spring-boot 中,可以通过在类中使用 @Value 注解来获取 yml 文件中的全局变量。例如,如果在 yml 文件中有一个全局变量 app.name,可以这样获取它的值:
@Value("${app.name}")
private String appName;
然后在应用程序的任何地方都可以使用 appName 变量了。
需要注意的是,如果 yml 文件中的全局变量需要使用复杂...
实际应用中,我们会有在项目服务启动完成以后去加载一些数据或做一些事情(比如缓存)这样的需求。
为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。很简单,只需要一个类就可以,无需其他配置。
Spring Boot应用程序在启动后,会遍历CommandLineRunner接口的实例并运行它们的run方法。也可以利用@Order注解(或者实现Order接口)来规定所有Comma
CentOS7安装jenkins
yeapT: