博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
7、spring属性注入
阅读量:7270 次
发布时间:2019-06-29

本文共 1056 字,大约阅读时间需要 3 分钟。

hot3.png

定义一个配置文件system.properties,里面添加一个name属性值

a7de2223ab63aa09b7b91a1796adba99fa9.jpg

ed5960bad76249c4b147b1dcd812541f289.jpg

cat对象的name属性添加了注解@Value("${name}"),spring容器通过运行时的环境变量,获取name的值,赋值给cat的name属性。

@Datapublic class Cat {    //名字    @Value("${name}")    private String name;}

要想spring容器可以从环境变量中获取到name,我们必须把system.properties里的属性,加载到spring容器的内部的环境变量存储中心(应该是个map对象)。

使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中。

@PropertySource(value={"classpath:/system.properties"})@Configurationpublic class PropertyValuesConfig {    @Bean    public Cat cat(){        return new Cat();    }}

测试运行,下面的代码首先从运行环境中获取到name属性,然后获取Cat对象,打印cat。

@Testpublic void test(){    AnnotationConfigApplicationContext applicationContext =            new AnnotationConfigApplicationContext(PropertyValuesConfig.class);    //获取运行的环境变量,通过环境变量获取name属性    Environment environment = applicationContext.getEnvironment();    String name = environment.getProperty("name");    System.out.println(name);    Cat cat = applicationContext.getBean(Cat.class);    System.out.println(cat);}

从运行结果可以看出,运行环境中可以取出name属性,同时name属性值也注入到了cat实例中。

5ed98e3a7bc72b9c9afb4ad3e20d8c144f8.jpg

 

转载于:https://my.oschina.net/suzheworld/blog/3008168

你可能感兴趣的文章
maven 构建web项目
查看>>
手机app抓包工具fiddler使用
查看>>
Ubuntu12.04防火墙内网配置
查看>>
10.linux 定时任务at与crontab
查看>>
nginx 获取 post body值
查看>>
我的友情链接
查看>>
Spring和Mybatis的整合
查看>>
工业控制系统安全防护应该避免的几个问题
查看>>
国家自然科学基金委发布《网络空间大搜索技术白皮书》
查看>>
webmin精确管理samba权限
查看>>
299 - Train Swapping
查看>>
UFT入门教程(4)—综合练习一
查看>>
我的友情链接
查看>>
DES 加密解密C#和JAVA 互通
查看>>
我的友情链接
查看>>
Java解决多人同时操作的解决方案 实际例子介绍
查看>>
maven之nexus
查看>>
公钥与私钥
查看>>
发先一个好东西
查看>>
云计算之分布式文件系统
查看>>