国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Springboot在有參構(gòu)造方法類中使用@Value注解取值

瀏覽:5日期:2023-05-08 15:55:09

我們在Springboot中經(jīng)常使用@Value注解來獲取配置文件中的值,像下面這樣

@Componentclass A { @Value('${user.value}') private String configValue; public void test() { System.out.println(configValue); }}

但有時我們需要這個類擁有一個有參的構(gòu)造方法,比如

@Componentclass A { @Value('${user.value}') private String configValue; private String s; public A(String s) { this.s = s; } public void test() { System.out.println(s); System.out.println(configValue); }}

要使@Value生效,必須把Bean交給Spring進(jìn)行管理,而不能使用new去實(shí)例化對象,否則@Value取值為NULL。我們一般使用@Autowired都是默認(rèn)注入無參的構(gòu)造方法,要想注入有參的構(gòu)造方法,我們需要構(gòu)建Config類:

@Configurationpublic class AConfig { @Bean(name='abc') DataOpration abcA() { return new A('abc'); }}

然后創(chuàng)建SpringUtil類

@Componentpublic class SpringUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if(SpringUtil.applicationContext == null) { SpringUtil.applicationContext = applicationContext; } } public static ApplicationContext getApplicationContext() { return applicationContext; } //通過name獲取 Bean. public static Object getBean(String name){ return getApplicationContext().getBean(name); }}

在調(diào)用時,只需要獲取到對應(yīng)的Bean

A a = (A) SpringUtil.getBean('abc');a.test();

就可以同時獲取到配置文件中的值和傳入的參數(shù)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 青州市| 即墨市| 和硕县| 孝感市| 汤阴县| 麻栗坡县| 大港区| 长葛市| 宜昌市| 临安市| 东安县| 明光市| 祁门县| 昌黎县| 会泽县| 屯门区| 澜沧| 墨江| 鱼台县| 左贡县| 松原市| 兴安县| 凉城县| 丰顺县| 曲松县| 宝兴县| 灵武市| 信丰县| 云龙县| 高尔夫| 南平市| 娄底市| 定兴县| 陇南市| 涪陵区| 滦南县| 瑞金市| 思南县| 江源县| 扶沟县| 霍城县|