SpringBoot2.0系列--03--配置文件properties和yml.md

Posted by lizhao on 07-09,2019

SpringBoot2.0系列--03--配置文件properties和yml

[toc]

介绍

很多东西不会直接写到代码里面,而是通过配置文件的方式与代码并列,将一些可变参数写到配置文件中

在springboot中就有这样的配置文件,一般有2种方式 application.properties或者application.yml

  • application.properties 以键值对的形式书写
  • application.yml 以树的形式书写
  • 2个文件都是放在resources的根目录下面,如果2个都存在则会按application.properties的配置生效,忽略application.yml

示例

  • application.properties
com.lizhaoblog.name=xiaowan
com.lizhaoblog.title=Spring Boot
com.lizhaoblog.desc=${com.lizhaoblog.name}write  ${com.lizhaoblog.title}

com.lizhaoblog.useByController = 888

# 多环境配置文件激活属性
spring.profiles.active=dev
  • application.yml
com:
  lizhaoblog:
    name: xiaowan
    title: Spring Boot application.yml
    desc: ${com.lizhaoblog.name}  write  ${com.lizhaoblog.title}
    useByController: 999

# 多环境配置文件激活属性
spring:
  profiles:
    active: dev

server:
  port: 8080

在代码中使用这些配置信息

只要是归于spring管理的类,都能直接使用value注解,来获取这些配置数据。

spring管理的类: 类通过Component、Controller、Service等注解

具体写法:

@Value("${com.lizhaoblog.name}")
  private String name;

如图:

spring内部配置

有一些springboot自带的属性,也是可以根据我们的配置进行修改的

端口号

server.port = 8080

切换访问的端口号

多环境切换

spring.profiles.active=dev

有时候会遇到这种问题,在本地测试会有一套配置信息,在服务器上面搭建又有另一套配置信息,这时候就可以使用环境配置了。

比如上面是dev,他会自动寻找application-dev.properties的文件,进行加载。

其他

以下内容来自这个小哥的博客:https://blog.csdn.net/y534560449/article/details/53585207

server配置

server.address #指定server绑定的地址
server.compression.enabled #是否开启压缩,默认为false.
server.compression.excluded-user-agents #指定不压缩的user-agent,多个以逗号分隔,默认值为:text/html,text/xml,text/plain,text/css
server.compression.mime-types #指定要压缩的MIME type,多个以逗号分隔.
server.compression.min-response-size #执行压缩的阈值,默认为2048
server.context-parameters.[param name] #设置servlet context 参数
server.context-path #设定应用的context-path.
server.display-name #设定应用的展示名称,默认: application
server.jsp-servlet.class-name #设定编译JSP用的servlet,默认: org.apache.jasper.servlet.JspServlet)
server.jsp-servlet.init-parameters.[param name] #设置JSP servlet 初始化参数.
server.jsp-servlet.registered #设定JSP servlet是否注册到内嵌的servlet容器,默认true
server.port #设定http监听端口
server.servlet-path #设定dispatcherservlet的监听路径,默认为: /

cookie、session配置

server.session.cookie.comment #指定session cookie的comment
server.session.cookie.domain #指定session cookie的domain
server.session.cookie.http-only #是否开启HttpOnly.
server.session.cookie.max-age #设定session cookie的最大age.
server.session.cookie.name #设定Session cookie 的名称.
server.session.cookie.path #设定session cookie的路径.
server.session.cookie.secure #设定session cookie的“Secure” flag.
server.session.persistent #重启时是否持久化session,默认false
server.session.timeout #session的超时时间
server.session.tracking-modes #设定Session的追踪模式(cookie, url, ssl).

ssl配置

<span style="font-size:12px;">server.ssl.ciphers   #是否支持SSL ciphers.
server.ssl.client-auth   #设定client authentication是wanted 还是 needed.
server.ssl.enabled   #是否开启ssl,默认: true
server.ssl.key-alias   #设定key store中key的别名.
server.ssl.key-password   #访问key store中key的密码.
server.ssl.key-store   #设定持有SSL certificate的key store的路径,通常是一个.jks文件.
server.ssl.key-store-password   #设定访问key store的密码.
server.ssl.key-store-provider   #设定key store的提供者.
server.ssl.key-store-type   #设定key store的类型.
server.ssl.protocol   #使用的SSL协议,默认: TLS
server.ssl.trust-store   #持有SSL certificates的Trust store.
server.ssl.trust-store-password   #访问trust store的密码.
server.ssl.trust-store-provider   #设定trust store的提供者.
server.ssl.trust-store-type   #指定trust store的类型.</span>

tomcat配置

<span style="font-size:14px;">server.tomcat.access-log-enabled   #是否开启access log ,默认: false)
server.tomcat.access-log-pattern   #设定access logs的格式,默认: common
server.tomcat.accesslog.directory   #设定log的目录,默认: logs
server.tomcat.accesslog.enabled   #是否开启access log,默认: false
server.tomcat.accesslog.pattern   #设定access logs的格式,默认: common
server.tomcat.accesslog.prefix   #设定Log 文件的前缀,默认: access_log
server.tomcat.accesslog.suffix   #设定Log 文件的后缀,默认: .log
server.tomcat.background-processor-delay   #后台线程方法的Delay大小: 30
server.tomcat.basedir   #设定Tomcat的base 目录,如果没有指定则使用临时目录.
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}”
server.tomcat.max-http-header-size   #设定http header的最小值,默认: 0
server.tomcat.max-threads   #设定tomcat的最大工作线程数,默认为: 0
server.tomcat.port-header   #设定http header使用的,用来覆盖原来port的value.
server.tomcat.protocol-header   #设定Header包含的协议,通常是 X-Forwarded-Proto,如果remoteIpHeader有值,则将设置为RemoteIpValve.
server.tomcat.protocol-header-https-value   #设定使用SSL的header的值,默认https.
server.tomcat.remote-ip-header   #设定remote IP的header,如果remoteIpHeader有值,则设置为RemoteIpValve
server.tomcat.uri-encoding   #设定URI的解码字符集.</span>

联系方式

项目代码路径码云:https://gitee.com/lizhaoandroid/Springboot-Learning-lz

联系方式:QQ3060507060

查看下一篇或者其他文章,可点击目录或者专栏查看