springboot application.properties 如何写多个配置文件?

springboot application.properties 如何写多个配置文件?,第1张

springboot application.properties 写多个配置文件的方法:

# 文件编码

banner.charset= UTF-8

# 文件位置

banner.location= classpath:banner.txt

# 日志配置

# 日志配置文件的位置。 例如对于Logback的`classpath:logback.xml`

logging.config=

# %wEx#记录异常时使用的转换字。

logging.exception-conversion-word=

# 日志文件名。 例如`myapp.log`

logging.file=

# 日志级别严重性映射。 例如`logging.level.org.springframework =  DEBUG`

logging.level.*=

# 日志文件的位置。 例如`/ var / log

logging.path=

# 用于输出到控制台的Appender模式。 只支持默认的logback设置。

logging.pattern.console=

# 用于输出到文件的Appender模式。 只支持默认的logback设置。

logging.pattern.file=

# 日志级别的Appender模式(默认%5p)。 只支持默认的logback设置。

logging.pattern.level=

#注册日志记录系统的初始化挂钩。

logging.register-shutdown-hook= false

# AOP 切面

# 添加@EnableAspectJAutoProxy。

spring.aop.auto= true

# 是否要创建基于子类(CGLIB)的代理(true),而不是基于标准的基于Java接口的代理(false)。

spring.aop.proxy-target-class= false

# 应用程序上下文初始化器

# 应用指标。

spring.application.index=

# 应用程序名称。

spring.application.name= 

# 国际化(消息源自动配置)

#

spring.messages.basename= messages

# 以逗号分隔的基础名称列表,每个都在ResourceBundle约定之后。

# 加载的资源束文件缓存到期,以秒为单位。 设置为-1时,软件包将永久缓存。

spring.messages.cache-seconds= -1

# 消息编码。

spring.messages.encoding= UTF-8

# 设置是否返回到系统区域设置,如果没有找到特定语言环境的文件。

spring.messages.fallback-to-system-locale= true

# REDIS (Redis 配置)

# 连接工厂使用的数据库索引。

spring.redis.database= 0

# Redis服务器主机。

spring.redis.host= localhost

# 登录redis服务器的密码。

spring.redis.password=

# 给定时间池可以分配的最大连接数。 使用负值为无限制。

spring.redis.pool.max-active= 8

# 池中“空闲”连接的最大数量。 使用负值来表示无限数量的空闲连接。

spring.redis.pool.max-idle= 8

# 连接分配在池耗尽之前在抛出异常之前应阻止的最大时间量(以毫秒为单位)。 使用负值无限期地阻止。

spring.redis.pool.max-wait= -1

# 定义池中维护的最小空闲连接数。 此设置只有在正值时才有效果。

spring.redis.pool.min-idle= 0

# redis服务器端口

spring.redis.port= 6379

# redis服务器名称

spring.redis.sentinel.master=

# spring.redis.sentinel.nodes=

# 连接超时(毫秒)。

spring.redis.timeout= 0

# 管理员 (Spring应用程序管理员JMX自动配置)

# 开启应用管理功能。

spring.application.admin.enabled= false

# JMX应用程序名称MBean。

spring.application.admin.jmx-name= org.springframework.boot:type= Admin,name= SpringApplication

# 自动配置

# 自动配置类排除。

spring.autoconfigure.exclude=

# spring 核心配置

# 跳过搜索BeanInfo类。

spring.beaninfo.ignore= true

# spring 缓存配置

# 由底层缓存管理器支持的要创建的缓存名称的逗号分隔列表。

spring.cache.cache-names=

# 用于初始化EhCache的配置文件的位置。

spring.cache.ehcache.config=

# 用于创建缓存的规范。 检查CacheBuilderSpec有关规格格式的更多细节。

spring.cache.guava.spec=

# 用于初始化Hazelcast的配置文件的位置。

spring.cache.hazelcast.config=

# 用于初始化Infinispan的配置文件的位置。

spring.cache.infinispan.config=

# 用于初始化缓存管理器的配置文件的位置。

spring.cache.jcache.config=

# 用于检索符合JSR-107的缓存管理器的CachingProvider实现的完全限定名称。 只有在类路径上有多个JSR-107实现可用时才需要。

spring.cache.jcache.provider=

# 缓存类型,默认情况下根据环境自动检测。

spring.cache.type=

# spring配置 (配置文件应用侦听器)

# 配置文件位置。

spring.config.location=

# 配置文件名。

spring.config.name= application

Springboot的多配置文件是指:系统中存在多个配置文件,在不同的运行环境使用不同的配置文件即可。

启动项目的方法一般有两种 :

1、 运行RootApplication中的main方法。

2、 使用命令:mvn spring-boot:run

这两方法默认都是使用application.properties中的配置信息,如果有指spring.profiles.active则使用指定的配置信息,这种方式一般用在产品运行时,在开发和测试的时候则需要指定配置文件。

server配置

1. server.address指定server绑定的地址

2. server.compression.enabled是否开启压缩,默认为false.

3. server.compression.excluded-user-agents指定不压缩的user-agent,多个以逗号分隔,默认值为:text/html,text/xml,text/plain,text/css

4. server.compression.mime-types指定要压缩的MIME type,多个以逗号分隔.

5. server.compression.min-response-size执行压缩的阈值,默认为2048

6. server.context-parameters.[param name]设置servlet context 参数

7. server.context-path设定应用的context-path.

8. server.display-name设定应用的展示名称,默认: application

9. server.jsp-servlet.class-name设定编译JSP用的servlet,默认: org.apache.jasper.servlet.JspServlet)

10. server.jsp-servlet.init-parameters.[param name]设置JSP servlet 初始化参数.

11. server.jsp-servlet.registered设定JSP servlet是否注册到内嵌的servlet容器,默认true

12. server.port设定http监听端口

13. server.servlet-path设定dispatcher servlet的监听路径,默认为: /

cookie、session配置

1. server.session.cookie.comment指定session cookie的comment

2. server.session.cookie.domain指定session cookie的domain

3. server.session.cookie.http-only是否开启HttpOnly.

4. server.session.cookie.max-age设定session cookie的最大age.

5. server.session.cookie.name设定Session cookie 的名称.

6. server.session.cookie.path设定session cookie的路径.

7. server.session.cookie.secure设定session cookie的“Secure” flag.

8. server.session.persistent重启时是否持久化session,默认false

9. server.session.timeoutsession的超时时间

10. server.session.tracking-modes设定Session的追踪模式(cookie, url, ssl).

ssl配置

1. server.ssl.ciphers是否支持SSL ciphers.

2. server.ssl.client-auth设定client authentication是wanted 还是 needed.

3. server.ssl.enabled是否开启ssl,默认: true

4. server.ssl.key-alias设定key store中key的别名.

5. server.ssl.key-password访问key store中key的密码.

6. server.ssl.key-store设定持有SSL certificate的key store的路径,通常是一个.jks文件.

7. server.ssl.key-store-password设定访问key store的密码.

8. server.ssl.key-store-provider设定key store的提供者.

9. server.ssl.key-store-type设定key store的类型.

10. server.ssl.protocol使用的SSL协议,默认: TLS

11. server.ssl.trust-store持有SSL certificates的Trust store.

12. server.ssl.trust-store-password访问trust store的密码.

13. server.ssl.trust-store-provider设定trust store的提供者.

14. server.ssl.trust-store-type指定trust store的类型.

tomcat

1. server.tomcat.access-log-enabled是否开启access log ,默认: false)

2. server.tomcat.access-log-pattern设定access logs的格式,默认: common

3. server.tomcat.accesslog.directory设定log的目录,默认: logs

4. server.tomcat.accesslog.enabled是否开启access log,默认: false

5. server.tomcat.accesslog.pattern设定access logs的格式,默认: common

6. server.tomcat.accesslog.prefix设定Log 文件的前缀,默认: access_log

7. server.tomcat.accesslog.suffix设定Log 文件的后缀,默认: .log

8. server.tomcat.background-processor-delay后台线程方法的Delay大小: 30

9. server.tomcat.basedir设定Tomcat的base 目录,如果没有指定则使用临时目录.

10. server.tomcat.internal-proxies设定信任的正则表达式,默认:“10.\d{1,3}.\d{1,3}.\d{1,3}| 192.168.\d{1,3}.\d{1,3}| 169.254.\d{1,3}.\d{1,3}| 127.\d{1,3}.\d{1,3}.\d{1,3}| 172.1[6-9]{1}.\d{1,3}.\d{1,3}| 172.2[0-9]{1}.\d{1,3}.\d{1,3}|172.3[0-1]{1}.\d{1,3}.\d{1,3}”

11. server.tomcat.max-http-header-size设定http header的最小值,默认: 0

12. server.tomcat.max-threads设定tomcat的最大工作线程数,默认为: 0

13. server.tomcat.port-header设定http header使用的,用来覆盖原来port的value.

14. server.tomcat.protocol-header设定Header包含的协议,通常是 X-Forwarded-Proto,如果remoteIpHeader有值,则将设置为RemoteIpValve.

15. server.tomcat.protocol-header-https-value设定使用SSL的header的值,默认https.

16. server.tomcat.remote-ip-header设定remote IP的header,如果remoteIpHeader有值,则设置为RemoteIpValve

17. server.tomcat.uri-encoding设定URI的解码字符集.

undertow

1. server.undertow.access-log-dir设定Undertow access log 的目录,默认: logs

2. server.undertow.access-log-enabled是否开启access log,默认: false

3. server.undertow.access-log-pattern设定access logs的格式,默认: common

4. server.undertow.accesslog.dir设定access log 的目录.

5. server.undertow.buffer-size设定buffer的大小.

6. server.undertow.buffers-per-region设定每个region的buffer数

7. server.undertow.direct-buffers设定堆外内存

8. server.undertow.io-threads设定I/O线程数.

9. server.undertow.worker-threads设定工作线程数

SpringBoot使用一个全局的配置文件,配置文件名是固定的;

配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;

YAML 是一个标记语言

标记语言:

以前的配置文件;大多都使用的是xxx.xml文件

YAML:以数据为中心,比json、xml等更适合做配置文件

YAML:配置例子

XML:

k:(空格)v : 表示一对键值对(空格必须有)

以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的

属性和值也是大小写敏感;

k: v :字面直接来写;

字符串默认不用加上单引号或者双引号;

"" :双引号;不会转义字符串里面的特殊字符; 特殊字符会作为本身想表示的意思

name : "zhangsan \n lisi" :输出 : zhangsan 换行 lisi

'' :单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据

name: 'zhangsan \n lisi' : 输出 ; zhangsan \n lisi

k: v : 在下一行来写对象的属性和值的关系 ;注意缩进

对象还是 k: v 的方式

行内写法:

用- 值表示数组中的一个元素

行内写法

配置文件

javaBean:

我们可以导入配置文件处理器,以后编写配置就有提示了

调整 图示:

配置文件yml还是properties他们都能获取到值;

如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value

如果说,我们专门编写一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties

@ImportResource:导入Spring的配置文件,让配置文件里面的内容生效

SpringBoot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;

想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上

不来编写Spring的配置文件

Spring Boot推荐给容器添加组件的方式;推荐全注解的方式

1、配置类@Configuration------>Spring配置文件

2、使用@Bean给容器中添加组件

我们在主配置文件编写的时候,文件名可以是application-{profile}.properties/yml

默认使用application.properties的配置

1、在配置文件中指定spring.profiles.active=dev

2、在命令行:

java -jar spring-boot-02-config.jar --spring.profiles.active=dev

可以直接在测试的时候,配置传入命令行参数

3.虚拟机参数

-Dspring.profiles.active=dev

springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring Boot的默认配置文件

-file:./config/

-file:./

-classpath:/config/

-classpath:/

优先级由高到低,高优先级的配置会覆盖低优先级的配置

SpringBoot会从这四个位置加载主配置文件:互补配置

==我们还可以通过spring.config.location来改变默认的配置文件位置==

项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用互补配置;

java -jar spring-boot-02-config.jar --spring.config.location=G:/application.properties

==SpringBoot也可以从以下位置加载配置;优先级从高到低;高优先级的配置低优先级的配置,所有的配置会形成互补配置==

1.命令行参数

2.来自java:comp/env的JNDI属性

3.java系统属性

4. *** 作系统环境变量

5.RandomValuePropertySource配置的random.*属性值

==有jar包外箱jar包内进行寻找==

==优先加载带profile==

6.jar包外部的application-{profile}.properties 或 application.yml(带spring.profile)配置文件

7.jar包内部的application-{profile}.properties 或 application.yml(带spring.profile)配置文件

==再来加载不带profile==

8.jar包外部的application.properties或者application.yml(不带spring.profile)配置文件

9.jar包内部的application.properties或者application.yml(不带spring.profile)配置文件

精髓:

1》springboot启动会加载大量的自动配置类

2》我们看我们需要的功能有没有springboot默认写好的自动配置类

3》我们再来看这个自动配置类中到底配置了那些组件;(只要我们要用的组件有,我们就不需要再来配置了)

4》给容器中自动配置类添加组件的时候,会从properties类中获取某些属性,我们就可以在配置文件中指定这些属性的值


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11629515.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存