• 02Spring Boot配置文件详解


    02Spring Boot配置文件详解

    自定义属性

    1. 在src/main/java/resources目录下创建一个application.properties或application.yml
    2. 在application.yml自定义一组属性
    my:
     name: boot
     age: 12
    
    1. 读取配置文件的值只需要加@Value("${属性名}")
    @RestController
    public class ConfigController {
    
        @Value("${my.name}")
        private String name;
        @Value("${my.age}")
        private int age;
    
        @RequestMapping(value = "/config")
        public String config(){
            return name+":"+age;
        }
    }
    
    
    1. 启动项目,访问:localhost:8080/config

    将配置文件的属性赋给实体类

    1. 当配置中有很多属性时,可以把这些属性作为字段创建javabean,并将属性值赋予给他们
    my:
      name: boot
      age: 20
      # ${random} ,用来生成各种不同类型的随机值。
      number:  ${random.int}
      uuid: ${random.uuid}
      max: ${random.int(10)}
      value: ${random.value}
      greeting: hi,i'm  ${my.name}
    
    
    1. 创建一个javabean,并添加注解@ConfigurationProperties(prefix = "my")
    @ConfigurationProperties(prefix = "my")
    public class ConfigBean {
        private String name;
        private int age;
        private int number;
        private String uuid;
        private int max;
        private String value;
        private String greeting;
        get...set...省略
        使用idea自动生成get,set和toString
    }
    
    1. 在应用类或启动类上增加注解
    @EnableConfigurationProperties({ ConfigBean.class })
    
    1. 添加ConfigBeanController类
    @RestController
    public class ConfigBeanController {
        @Autowired
        private ConfigBean configBean;
        @RequestMapping("/configbean")
        public String config(){
            // 输出所有字段的值
            return  configBean.toString();
        }
    }
    
    1. 启动项目,访问http://localhost:8080/configbean

    自定义配置文件

    1. application配置文件是系统默认的,我们可以添加其他名称的配置文件,如test.properties(不能是test.yml,测试读不到数据)
    com.boot.name=boot
    com.boot.age=20
    
    1. 添加TestBean,需要指定文件名和前缀
    @Configuration
    @PropertySource(value = "classpath:test.properties")
    @ConfigurationProperties(prefix = "com.boot")
    public class TestBean {
        private String name;
        private int age;
        省略get,set,tostring
    }
    
    1. 添加TestBeanController
    @EnableConfigurationProperties({TestBean.class})
    @RestController
    public class TestBeanController {
        @Autowired
        private  TestBean testBean;
        @RequestMapping("/testconfig")
        public String testConfig() {
            return testBean.toString();
        }
    }
    
    
    1. 启动项目,返回http://localhost:8080/testconfig

    多个环境配置文件

    1. 在现实的开发环境中,我们需要不同的配置环境;格式为application-{profile}.properties,其中{profile}对应你的环境标识,比如
    • application-test.properties:测试环境
    • application-dev.properties:开发环境
    • application-prod.properties:生产环境
    1. 实际使用的配置文件,通过在application.yml中增加:
     spring:
      profiles:
        active: dev
    
    1. 添加application-dev.yml
    my:
      name: dev
      age: 11
    #server:
    #  port: 8082
    
    1. 启动程序,访问http://localhost:8080/config,发现读取的是application-dev.yml中的配置
    2. 访问http://localhost:8080/configbean,会发现,当application-dev.yml和application.yml中有重名的字段时,前者会覆盖后者的值。
    ConfigBean{name='dev', age=11, number=-1422131996, uuid='5bebc511-f1a4-4f2b-95ed-540e4b48e8bd', max=0, value='8b96a5bbde492fb189e4fa52573c9caf', greeting='hi,i'm dev'}
    
  • 相关阅读:
    ssm框架之写一个springmvc拦截器
    面试中的谈谈对spring的理解
    idea导入maven项目,执行时报程序报找不到(对应的jar包都存在),解决方案
    安装 ttf mscorefonts安装程序后的软件安装"下载额外数据文件失败"
    WEB-INF文件访问问题
    Junit测试@FixMethodOrder调整测试顺序
    MySQL自增主键ID重新排序
    windows下mysql-8.0.13主从同步配置方案(读写分离)
    Linux下运行mysql命令提示command not found解决办法
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
  • 原文地址:https://www.cnblogs.com/wang7/p/10776334.html
Copyright © 2020-2023  润新知