1 Star 0 Fork 0

小鱼 / SpringBootLearning

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
springboot自定义属性.md 2.76 KB
一键复制 编辑 原始数据 按行查看 历史
yuxi 提交于 2017-08-24 19:31 . springboot properties

#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")
Java
1
https://gitee.com/xiaoyuxi/springbootlearning.git
git@gitee.com:xiaoyuxi/springbootlearning.git
xiaoyuxi
springbootlearning
SpringBootLearning
master

搜索帮助