Spring-boot 外部配置文件属性获取

常规属性配置

  1. application.properties定义属性,直接使用@Value注入即可
    book.author=zhangyongjun
    book.name=spring boot
    
    @RestController
    public class Index {
    
        @Value(value = "${book.author}")
        private String bookAuthor;
        @Value(value = "${book.name}")
        private String bookName;
    
        @RequestMapping(value = "/")
        public String index() {
            return "book name is:" + bookName + " and book author is:" + bookAuthor;
        }
    
    }
    

    类型安全的配置

             常规属性配置虽然使用@Value就可以实现注入配置属性,但是如果需要注入的属性地方很多,那么到处的@Value就显得格外麻烦。虽然我们可以使用一个Bean将所有配置文件属性注入,然后在使用的时候通过Bean.get属性就可以获取,但是还是要给每个属性@Value注解。

    1.application.properties定义属性
     

    #作者属性
    author.name=zyj
    author.age=18
    
  2. 创建一个配置类,并且属性和配置文件的一致
    @Component//让Spring-boot扫描这个Bean
    @ConfigurationProperties(prefix = "author")//prefix属性的前缀
    public class AuthorSettings {
    
        private String name;
    
        private long age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public long getAge() {
            return age;
        }
    
        public void setAge(long age) {
            this.age = age;
        }
    }
    
    @RestController
    public class Author {
    
        @Autowired
        private AuthorSettings author;
    
        @RequestMapping(value = "/author")
        public String index() {
            return "author name is:" + author.getName() + " and author age is:" + author.getAge();
        }
    
    }
    

    关注微信公众号(程序员小兔)不定期分享技术

发布了222 篇原创文章 · 获赞 189 · 访问量 39万+

猜你喜欢

转载自blog.csdn.net/sinat_32366329/article/details/82847740