前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【注解驱动时代】细说@Value注解

【注解驱动时代】细说@Value注解

作者头像
田维常
发布2019-07-25 17:01:29
4310
发布2019-07-25 17:01:29
举报
文章被收录于专栏:Java后端技术栈cwnait

通过@Value将外部配置文件的值动态注入到Bean中。配置文件主要有两类:

  1. application.properties/application.yml。这两个配置文件在spring boot启动时默认加载此文件
  2. 自定义属性文件。自定义属性文件通过@PropertySource加载。@PropertySource可以同时加载多个文件,也可以加载单个文件。如果相同第一个属性文件和第二属性文件存在相同key,则最后一个属性文件里的key启作用。
源码
代码语言:javascript
复制
代码语言:javascript
复制
//用于方法、参数、注解
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Value {
String value();

}
代码语言:javascript
复制
示例
第一种默认配置文件

在application.properties文件中配置好

代码语言:javascript
复制
user.address=Beijing

java代码中

代码语言:javascript
复制
代码语言:javascript
复制
@Controller
@RequestMapping("/user")
public class ControllerDemo {

    @Value("${user.address}")
    private String userAddress;

    @Resource
    private UserServiceImpl userService;

    @RequestMapping(value = "/index")
    @ResponseBody
    public String index() {
        //下面打印出:Beijing
        System.out.println(userAddress);
        userService.test();
        return "ok";
    }
}
代码语言:javascript
复制

另外application.yml 获取方式一样,只是两种配置文件的样式不同。注意:yml文件中的冒号后面要有空格,冒号+空格=properties文件中的点.。

第二种自定义配置文件

新建Myconfig.properties,放置于resources目录下,配置项如下:

net.address=www.baidu.com

代码语言:javascript
复制
net.address=www.sina.com
代码语言:javascript
复制

java代码

代码语言:javascript
复制
代码语言:javascript
复制
@Component
@PropertySource({"classpath:/Myconfig.properties"})
public class ConfigurationFileInject {
    @Value("${net.address}")
    private String userLog;

    public String getUserLog() {
        return this.userLog;
    }
}

@Controller
@RequestMapping("/user")
public class ControllerDemo {
    @Resource
    private ConfigurationFileInject configurationFileInject;
    @RequestMapping(value = "/index")
    @ResponseBody
    public String index() {
        String userBlog=configurationFileInject.getUserLog();
        //下面打印出:www.sina.com
        System.out.println(userBlog);
        return "ok";
    }
}

通常用来获取配置文件中的配置项。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java后端技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 源码
  • 示例
    • 第一种默认配置文件
      • 第二种自定义配置文件
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档