SpringCloud入门之常用的配置文件 application.yml和 bootstrap.yml区别

application.yml 和bootStrap.yml 在同一目录下,则bootStrap.yml 的加载顺序要高于application.yml,即bootStrap.yml  会优先被加载。

   原理:bootstrap.yml 用于应用程序上下文的引导阶段。

              bootstrap.yml 由父Spring ApplicationContext加载。

            •bootstrap.yml 可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。
            •application.yml 可以用来定义应用级别的,用户级的资源配置项

在bootstrap文件里面可以配置包括tomcat的端口和应用的名称spring.name等

 

 

application 常用配置:
 

(1)端口服务配置

server:
  port: 8080
  servlet:
    context-path: /hotel
    session:
      timeout: 30m
  tomcat:
    connection-timeout: 5000ms
    uri-encoding: UTF-8
    #默认200,maxConnections的设置与Tomcat的运行模式有关。如果tomcat使用的是BIO,那么maxConnections的值应该与maxThreads一致;如果tomcat使用的是NIO,maxConnections值应该远大于maxThreads
    max-threads: 500

其中context-path: /hotel可以不用配置
如果配置,访问路径就是http://ip:port/hotel/
没有配置,访问路径就是http://ip:port/

(2)数据库配置


spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/flog?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
    username: root
    password: root

mybatis:
  mapper-locations: classpath:mapping/*.xml---------mybatis sql对应的xml文件
  type-aliases-package: cn.felixfang.flog.entity  ---对应数据库实体所在的包(存在多个用逗号隔开)
redis:
    database: 0
    host: localhost
    port: 6379
    password:
    jedis:
      pool:
        max-active: 8
        max-wait: -1
        max-idle: 8
        min-idle: 0
    timeout: 0

(3)配置多个不同的profile,实现在不同的环境(比如开发、测试和生产环境)使用不同的配置变量。

# 默认的profile为dev,其他环境通过指定启动参数使用不同的profile,比如:
#   测试环境:java -jar my-spring-boot.jar --spring.profiles.active=test
#   生产环境:java -jar my-spring-boot.jar --spring.profiles.active=prod
spring:
  profiles:
    active: dev

---
# 开发环境配置
spring:
  profiles: dev
mysql:
  ipPort: localhost:3306
  
---
# 测试环境配置
spring:
  profiles: test
mysql:
  ipPort: ip:port
  
---
# 生产环境配置
spring:
  profiles: prod
mysql:
  ipPort: ip:port

使用方法:
通过指定启动参数使用不同的profile
测试环境: java -jar my-spring-boot.jar --spring.profiles.active=test
生产环境: java -jar my-spring-boot.jar --spring.profiles.active=prod

(3)指定静态资源路径

spring:
  resources:
    #指定静态资源路径,默认为classpath:[/META-INF/resources/,/resources/, /static/, /public/]以及context:/
    static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/}

(4)热部署
在Springboot+Thymeleaf的开发过程中,默认情况下修改到任何代码都需要重新启动项目才能生效。使用spring.thymeleaf.cache和devtools来解决html热启动的问题
首先在pom.xml中配置



org.springframework.boot
spring-boot-devtools
runtime
true

注意:true只有设置为true时才会热启动,即当修改了html、css、js等这些静态资源后不用重启项目直接刷新即可。
然后修改application.yml

#热部署--静态资源立即生效
spring:
  #热部署--静态资源立即生效
  thymeleaf:
    cache: false
    encoding: UTF-8
    mode: LEGACYHTML5
    prefix: classpath:/templates/
    suffix: .html
    check-template-location: true
  #热部署生效
  devtools:
    restart:
      enabled: true

SpringCloud入门之常用的配置文件 application.yml和 bootstrap.yml区别_第1张图片

如果需要在修改java文件后都能自动更新,则需要将原先的maven构建修改。
配置了true后在修改java文件后也就支持了热启动,不过这种方式是属于项目重启(速度比较快的项目重启),会清空session中的值,也就是如果有用户登陆的话,项目重启后需要重新登陆。





org.springframework.boot
spring-boot-maven-plugin






org.springframework.boot
spring-boot-maven-plugin


true



(5)时间配置

spring:
    jackson:
        #指定日期格式,比如yyyy-MM-dd HH:mm:ss
        date-format: yyyy-MM-dd HH:mm:ss
        #指定日期格式化时区
        time-zone: GMT+8

(6)模板配置
springboot 中自带的页面渲染工具为thymeleaf 还有freemarker 这两种模板引擎 。



org.springframework.boot
spring-boot-starter-freemarker
spring:
   freemarker:
    suffix: .html   #设定模板的后缀
    request-context-attribute: request  #request访问request
    content-type: text/html
    enabled: true
    cache: false   #缓存配置
    template-loader-path: classpath:/templates/ #模板加载路径 按需配置
    charset: UTF-8   #编码格式
    settings:
      number_format: '0.##'   #数字格式化,无小数点

(7)redis和shiro配置



org.springframework.boot
spring-boot-starter-data-redis


org.apache.shiro
shiro-spring
1.3.2
spring:
    redis:
        database: 0
        host: localhost
        port: 6379
        password:
        jedis:
          pool:
            max-active: 8
            max-wait: -1
            max-idle: 8
            min-idle: 0
        timeout: 0
    shiro:
        conf:
          domain:
          cookiePath: /
          successUrl: /index
          loginView: /login
          openToken: false
          sessionTimeout: 1800000
          algorithmName: md5
          hashIterations: 5
          #不拦截的路径
          sysanon:
            - /login
            - /regist
          #跨域配置
          allowedOrigins:
            - /**

 

你可能感兴趣的:(springcloud)