首页 > 编程知识 正文

window应用配置文件保存,steam应用配置文件

时间:2023-05-06 02:27:52 阅读:214183 作者:4671

第01章 Spring-Boot 应用文件application配置

文章目录 第01章 Spring-Boot 应用文件application配置前言目标环境随机值配置属性占位符应用配置文件加载顺序应用配置文件键值对覆盖常用配置应用端口配置时间格式化配置时区设置 多环境配置多环境配置的好处Properties 多环境配置YAML多环境配置两种配置方式的比较如何使用 配置高级篇一、配置方式 二、如何实现多环境配置三、配置信息的加载顺序四、自定义参数五、参数引用六、使用随机数七、命令行参数七、命令行参数

前言

为什么要使用 Spring-Boot?

可参考官方文档。

什么是 Spring-Boot?

可参考官方文档说明。

官方地址

https://spring.io/projects/spring-boot

目标 完成 Jenkins 在 Docker 中的安装与配置。安装在 Docker 中的 Jenkins 能正常对外提供服务。在外部开发环境中能正常访问和使用 Jenkins 持续集成服务。 环境

**VMware:**VMware Workstation 14 Pro

**Linux:**CentOS7.4

**Docker:**18.06.0-ce, build 0ffa825

**Jenkins:**Jenkins2.121.1

**JDK:**jdk1.8.0_172

**Spring-Boot:**2.0.4

**Eclipse:**Eclipse Neon.3 (4.6.3)

spring-tool-suite:

Version: 3.8.4.RELEASE
Build Id: 201703310825
Platform: Eclipse Neon.3 (4.6.3)

**Maven:**3.5.0

随机值配置 xxx.secret=${random.value}xxx.number=${random.int}xxx.bignumber=${random.long}xxx.number.less.than.ten=${random.int(10)}xxx.number.in.range=${random.int[1024,65536]}

在应用代码中可以使用注解读取:@Value(value = "${xxx.secret}")

注:出现黄点提示,是要提示配置元数据,可以不配置

属性占位符

当application.properties里的值被使用时,它们会被存在的Environment过滤,所以你能够引用先前定义的值(比如,系统属性)。

xxx.name=www.google.comxxx.desc=${xxx.name} is a domain name 应用配置文件加载顺序

Application配置文件,加载按优先级排序,位置高的将覆盖位置低的

当前目录下的一个/config子目录

当前目录

一个classpath下的/config包

classpath根路径(root)

这个列表是按优先级排序的(列表中位置高的将覆盖位置低的)

应用配置文件键值对覆盖

应用配置文件的加载顺序,相同的键值对会对值进行覆盖,后面的会覆盖前面的。

@TestPropertySource 注解命令行参数Java系统属性(System.getProperties())操作系统环境变量只有在random.*里包含的属性会产生一个RandomValuePropertySource在打包的jar外的应用程序配置文件(application.properties,包含YAML和profile变量)在打包的jar内的应用程序配置文件(application.properties,包含YAML和profile变量)在@Configuration类上的@PropertySource注解默认属性(使用SpringApplication.setDefaultProperties指定) 常用配置 应用端口配置 server.port=8090 时间格式化配置 spring: 专注的香菇.time-zone: Asia/Shanghai 专注的香菇.date-format: yyyy-MM-dd HH:mm:ss 时区设置 spring: 专注的香菇.time-zone: Asia/Shanghai

注意:使用YAML代替Properties写法,冒号后面加个空格

多环境配置 多环境配置的好处

1.不同环境配置可以配置不同的参数

2.便于部署,提高效率,减少出错

Properties 多环境配置

1.配置激活选项

spring.profiles.active=dev

2.添加其他配置文件

application-dev.propertiesapplication-test.propertiesapplication-prod.propertiesapplication.properties YAML多环境配置

1.配置激活选项

spring: profiles: active: dev

2.在配置文件添加三个英文状态下的短横线即可区分

---spring: profiles: dev 两种配置方式的比较

Properties配置多环境,需要添加多个配置文件,YAML只需要一个配件文件

2.书写格式的差异,yaml相对比较简洁,优雅

YAML的缺点:不能通过@PropertySource注解加载。如果需要使用@PropertySource注解的方式加载值,那就要使用properties文件。

如何使用 java -jar myapp.jar --spring.profiles.active=dev 配置高级篇 一、配置方式

1、Spring Boot 应用的配置内容都可以统一集中在src/main/resource/application.properties文件中进行配置。

根据我们引入的不同Starter模块,可以在这里定义容器端口号、数据库连接ixnxi、日志级别等各种配置信息。

2、支持现在被广泛推荐使用的YAML文件。

YAML(英语发音类似camel)是一个可读性高,用来表达资料序列的格式。

全称是:YAML Ain’t a Markup Language,不是一种标记语言。

YAML的意思其实是:Yet Another Markup Language(仍是一种标记语言),但为了强调这种语言以数据作为中心,而不是以标记语言为重点,而用反向缩略语重新命名。

YMAL设计参考了多种语言,包括C语言、python、perl,并从XML、电子邮件的数据格式(RFC 2822)中获得灵感。

YMAL特点:

YMAL的语法和其他高阶语言类似,并且可以简单地表达清单、散列表、标量等形态。

使用空白符号缩排和大量依赖外观的特色,特别适合来表达或编辑数据结构、各种设定文档、文件大纲。

比较适合表达阶层式的数据结构,也可以用精致的语法表示关联性(relational model)的资料。

YMAL使用空白符号和分行来分割资料,使得它特别适合用 grep/python/perl/ruby 操作。

巧妙避开各种封闭符号,如引号、各种括号等,这些符号在巢状结构时会变得复杂而难以辨认。

——维基百科

YAML 采用的配置格式不像properties的配置那样以单纯的键值对形式来表示,而是以类似大纲的缩进形式来表示。

YMAL还可以在一个单个文件中通过使用 spring.profies 属性来定义多个不同的环境变量。比如默认、指定等形式。

server:

port: 8881

spring:

profiles: testserver: port: 8882---spring: profiles: prodserver: port: 8883

注意:YMAL目前还有一些不足,它无法通过@PropertySource注解来加载配置。但是,YAML将属性加载到内存中保存的时候是有序的,所以当配置文件中的信息需要具备顺序含义的时候,YAML的配置方式比起properties配置文件更有优势。

二、如何实现多环境配置

在Spring Boot中,多环境配置的文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:

application-dev.properties:开发环境

application-test.properties:测试环境

application-prod.properties:生产环境

至于具体哪个配置文件会被加载,需要在application.properties 文件中通过 spring.profiles.active 属性来设置。

可在启动时动态修改这个配置属性值:

java -jar xxx.jar --spring.profiles.active=prod

总结多环境的配置思路:

1、在application.properties 中配置通用内容,并设置 spring.profiles.active=dev,以开发环境为默认配置

2、在application-{profile}.properties 中配置各个环境布偶她能更多内容。

3、通过命令行方式去激活不同环境的配置。

三、配置信息的加载顺序

为了能够更加合理的重写各属性的值,Spring Boot 使用了下面这种较为特别的属性加载顺序:

1、在命令行中传入的参数。

2、SPRING_APPLICATION_JSON 中的属性。SPRING_APPLICATION_JSON是以JSON格式配置在系统环境变量中的内容。

3、java:com/env 中的 JNDI 属性。

4、Java的系统属性,可以通过 System.getProperties() 获得的内容。

5、操作系统的环境变量。

6、通过 random.* 配置的随机属性。

7、位于当前应用 jar包之外,针对不同{profile}环境的配置文件内容,例如application-{profile}.properties或是YMAL定义的配置文件。

8、位于当前应用jar包之内,针对不同{profile}环境的配置文件内容,例如application-{profile}.properties或是YMAL定义的配置文件。

9、位于当前应用 jar包之外的application.properties和YMAL配置内容。

10、位于当前应用 jar包之内的application.properties和YMAL配置内容。

11、在@Configuration注解修改的类中,通过@PropertySource注解定义的属性。

12、应用默认属性,使用SpringApplication.setDefaultProperties定义的内容。

优先级按上面的顺序由高到低,数字越小优先级越高。

可以看到,其中第7和第9项都是从应用jar包之外读取配置文件,所以,实现外部化配置的原理就是从此切入,为其制定外部配置文件的加载位置来取代jar包之内的配置内容。

这样,我们的工程在配置中就变得非常干净,只需要在本地放置开发需要的配置即可,而不用关系其它环境的配置,由其对应环境的负责人去维护即可。

四、自定义参数

除了可以在 Spring Boot 的配置文件中设置各个 Starter 模块中预定义的配置属性,也可以在配置文件中定义一些我们需要的自定义属性,在 application.properties中定义:

you.name=kony

you.age=18

在应用中可以通过@Value注解来加载这些自定义的参数。

@Service

public class person{

@Value("${you.name}")private String name;@Value("${you.age}")private int age;getter...setter...

}

@Value注解加载属性值支持两种表达式来进行配置:

1、一种是PlaceHolder方式,格式为${…}。

2、另一种是使用 SpEL 表达式(Spring Expression Language),格式为 #{…}。

五、参数引用

在application.properties 中的各个参数之间可以直接通过使用 PlaceHolder 的方式来进行引用。

you.name=kony

you.age=18

person.desc=my name is ${you.name} and age ${you.age}

六、使用随机数

在一些特殊情况下,希望有些参数每次被加载的时候不是一个固定的值,比如密码、服务端口等。在Spring Boot的属性文件中,可以通过使用¥{random}配置来阐释随机的int、long、string值。而不需要在程序中通过编码来实现这些逻辑。

配置方式有以下几种:

#随机字符串

you.name=${random.value}

#随机 int

you.age=${random.int}

#随机long

you.long=${random.long}

#10以内的随机数

you.random.scope1=${random.int(10)}

#10-20的随机数

you.random.scope2=${random.int(10,20)}

该配置可以设置应用端口场景,避免端口冲突。

七、命令行参数

如何启动Spring Boot 应用?

使用命令:java -jar,该命令除了启动应用之外,还可以在命令行中指定应用的参数,比如 java -jar xxx.jar --server.port=8080,直接以命令行的方式来设置server.port属性。

连续两个减号–就是对application.properties 中的属性值进行赋值的标识,相当于在文件中添加属性server.port=8080。

you.age=${random.int}

#随机long

you.long=${random.long}

#10以内的随机数

you.random.scope1=${random.int(10)}

#10-20的随机数

you.random.scope2=${random.int(10,20)}

该配置可以设置应用端口场景,避免端口冲突。

七、命令行参数

如何启动Spring Boot 应用?

使用命令:java -jar,该命令除了启动应用之外,还可以在命令行中指定应用的参数,比如 java -jar xxx.jar --server.port=8080,直接以命令行的方式来设置server.port属性。

连续两个减号–就是对application.properties 中的属性值进行赋值的标识,相当于在文件中添加属性server.port=8080。

通过命令行来修改属性值是 Spring Boot 非常重要的一个特性。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。