springboot 属性定义

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,925评论 6 342
  • application的配置属性。 这些属性是否生效取决于对应的组件是否声明为Spring应用程序上下文里的Bea...
    新签名阅读 5,416评论 1 27
  • 这些属性是否生效取决于对应的组件是否声明为 Spring 应用程序上下文里的 Bean(基本是自动配置的),为一个...
    发光的鱼阅读 1,444评论 0 14
  • 这些天一直在下雨,我窝在楼房里,在书里感受春天,在蒋勋老师的字里行间感受春天。 老师不愧是学美术出身。在他...
    海的微语阅读 623评论 0 2