美文网首页springboot
Spring Boot最常用的读取properties配置文件中

Spring Boot最常用的读取properties配置文件中

作者: rainbowz | 来源:发表于2019-01-21 02:05 被阅读77次

    1、使用@Value注解读取

    读取properties配置文件时,默认读取的是application.properties。

    application.properties:

    datou.name=datou
    datou.age=12
    

    java代码

    @RestController
    public class DemoController {
    @Value("${demo.name}")
        private  String name;
    
        @Value("${demo.age}")
        private int age;
    
        @GetMapping(value = "v")
        public  String getName(){
            return "name:"+name+" ,"+"age:"+age;
        }
    }
    

    运行结果如下


    图片.png

    部分放到一个单独的类A中进行读取,然后在类B中调用,则要把类A增加@Component注解,并在类B中使用@Autowired自动装配类A,代码如下。
    类A:

    import lombok.Data;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    @Data
    @Component
    public class Datou {
    
        @Value("${datou.name}")
        private  String name;
        @Value("${datou.age}")
        private  Integer age;
    }
    
    

    类B

    @RestController
    public class DemoController {
    
       @Autowired
        Datou datou;
    
        @Autowired
        Environment environment;
        @GetMapping(value = "datou")
        public  String getDatou(){
            return "name:"+datou.getName()+","+"age:"+datou.getAge();
                   ;
        }
    }
    

    运行结果如下:


    图片.png

    2、使用Environment读取

    application.properties:

    demo.sex=男
    demo.city=北京
    

    java代码

    @RestController
    public class DemoController {
    
    @Autowired
        Datou datou;
    
        @Autowired
        Environment environment;
        @GetMapping(value = "datou")
        public  String getDatou(){
            return //"name:"+datou.getName()+","+"age:"+datou.getAge();
                    "\n\n\n"+"sex"+environment.getProperty("demo.sex")+" "+"city:"+environment.getProperty("demo.city");
        }
    }
    

    运行结果如下


    图片.png

    3、使用@ConfigurationProperties注解读取

    在实际项目中,当项目需要注入的变量值很多时,上述所述的两种方法工作量会变得比较大,这时候我们通常使用基于类型安全的配置方式,将properties属性和一个Bean关联在一起,即使用注解@ConfigurationProperties读取配置文件数据。

    在src\main\resources下新建config.properties配置文件:

    demo.phone=10086
    demo.wife=self
    

    创建ConfigBeanProp并注入config.properties中的值

    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.stereotype.Component;
    @Data
    @Component
    @ConfigurationProperties(prefix = "demo")
    @PropertySource(value ="config.properties")
    public class ConfigBeanProp {
    
        private  String  phone;
    
        private  String wife;
    }
    
    

    @Component 表示将该类标识为Bean

    @ConfigurationProperties(prefix = "demo")用于绑定属性,其中prefix表示所绑定的属性的前缀。

    @PropertySource(value = "config.properties")表示配置文件路径。

    使用时,先使用@Autowired自动装载ConfigBeanProp,然后再进行取值,示例如下:

    @RestController
    public class DemoController {
    
       @Autowired
        ConfigBeanProp configBeanProp;
        @GetMapping("way")
        public  String getWay(){
            return "phone:"+configBeanProp.getPhone()+","+configBeanProp.getWife();
        }
    }
    

    运行结果如下:

    图片.png
    参考:https://blog.csdn.net/dkbnull/article/details/81953190

    相关文章

      网友评论

        本文标题:Spring Boot最常用的读取properties配置文件中

        本文链接:https://www.haomeiwen.com/subject/aklqjqtx.html