美文网首页springboot程序员
springboot 属性定义

springboot 属性定义

作者: 小鱼嘻嘻 | 来源:发表于2017-08-27 20:38 被阅读75次

    SpringBootLearning

    简单属性自定义

    一般属性可以定义在通用的配置文件application.properties里面

    # 自定义属性
    boot.userName = yuxi
    

    如何获取呢?

    按照spring的获取方式就可以了,很简单

     @Value(value = "${boot.userName}")
     private String userName;
    

    复杂属性自定义

    • 在配置里配置属性
    # 复杂属性
    test.id=1
    test.name=xiaoyuxixi
    test.money=100000000
    
    • 定义实体
    //需要注意这个属性是必须的
    @ConfigurationProperties(prefix = "test")
    public class Account {
       private int id;
       private String name;
       private double money;
    
       public int getId() {
           return id;
       }
    
       public void setId(int id) {
           this.id = id;
       }
    
       public String getName() {
           return name;
       }
    
       public void setName(String name) {
           this.name = name;
       }
    
       public double getMoney() {
           return money;
       }
    
       public void setMoney(double money) {
           this.money = money;
       }
    
       @Override
       public String toString() {
           return "Account{" +
                   "id=" + id +
                   ", name='" + name + '\'' +
                   ", money=" + money +
                   '}';
       }
    }
    
    
    • 注入属性
    @RestController
    // 这个属性也是必须的
    @EnableConfigurationProperties({Account.class})
    public class HelloController {
        //自定义属性
        @Value(value = "${boot.userName}")
        private String userName;
        @Autowired
        private Account account;
    
        /**
         * 复杂 属性自定义
         *
         * @return
         */
        @RequestMapping("/hard")
        public Object getHardProperties() {
    
            return account;
        }
    
        /**
         * welcome spring boot
         *
         * @return
         */
        @RequestMapping(value = "/", method = RequestMethod.GET)
        public String index() {
            return "Greetings from Spring Boot! ";
        }
    
        /**
         * 简单 属性自定义
         *
         * @return
         */
        @RequestMapping("/user")
        public String getProperties() {
            System.out.println(userName);
            return userName;
        }
        
    }
    

    在配置完复杂的属性之后,会发现这样写的话 application.properties里内容会很多有很多属性不是公共的配置,放在这里不是有优雅,可以把这些配置单独写一个配置文件

    配置文件获取

    • 添加配置文件 (test.properties)
    # 配置文件获取
    lakala.id=1
    lakala.name=xiaoyuxixi
    lakala.money=100000000
    
    • 获取属性文件(在实体上加入以下配置文件)
    @Configuration
    @PropertySource(value = "classpath:test.properties")
    

    源码地址:
    http://git.oschina.net/xiaoyuxi/springbootlearning

    相关文章

      网友评论

        本文标题:springboot 属性定义

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