Spring中利用配置文件和@value注入属性值代码详解

2025-05-27 0 97

1 简单属性值注入

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19
package com.xy.test1;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Service;

@Service // 需要被注入属性值的类需要被Spring管理

public class PropertiesService1 {

// 利用@Value注解,即使没有该属性或者属性文件也不会报错

// @Value输入属性值name,默认值xydefault

@Value("${name:xydefault}")

private String name;

// @Value输入属性值num,默认值-1

@Value("${num:-1}")

private Integer num;

// @Value输入属性值type,默认值-2

@Value("${type:-2}")

private Integer type;

public void getInfo() {

System.out.println("name:" + name + ",num:" + num + ",type:" + type);

}

}

?

1

2

3

4
#src/main/resource新建文件info.properties

name=xy1

num=101

type=1

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16
<!-- applicationContext.xml文件 -->

<!-- 扫描测试属性包中的类,要注入属性类需要被Spring管理 -->

<context:component-scan base-package="com.xy.test1" />

<!--方法1-->

<!-- <context:property-placeholder location="classpath*:info/info.properties" /> -->

<!--方法2-->

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="order" value="1" />

<property name="locations">

<list>

<value>classpath:info/info.properties</value>

</list>

</property>

</bean>

2 利用util标签注入复杂属性值

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36
package com.xy.test2;

import java.util.List;

import java.util.Map;

import java.util.Properties;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Service;

/**

* 该类必须被Spring容器管理属性才可以被注入。利用@Value注解,即使没有该属性或者属性文件也不会报错

*/

@Service

public class PropertiesService2 {

@Value("#{testPro}")

private Properties pros;

@Value("#{testList}")

private List<String> myList;

@Value("#{testMap}")

private Map<Integer, String> myMap;

public Properties getPros() {

return pros;

}

public void setPros(Properties pros) {

this.pros = pros;

}

public List<String> getMyList() {

return myList;

}

public void setMyList(List<String> myList) {

this.myList = myList;

}

public Map<Integer, String> getMyMap() {

return myMap;

}

public void setMyMap(Map<Integer, String> myMap) {

this.myMap = myMap;

}

}

?

1

2

3

4
#src/main/resource新建文件info2.properties

name=xy2

num=102

type=2

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20
<!-- applicationContext.xml -->

<!-- 扫描测试属性包中的类,要注入属性类需要被Spring管理 -->

<context:component-scan base-package="com.xy.test2" />

<!-- properties -->

<util:properties id="testPro" location="classpath:info/info2.properties" />

<!-- list -->

<util:list id="testList" list-class="java.util.ArrayList">

<value>first</value>

<value>second</value>

<value>third</value>

</util:list>

<!-- map -->

<util:map id="testMap" map-class="java.util.HashMap">

<entry key="1" value="first" />

<entry key="2" value="second" />

<entry key="3" value="third" />

</util:map>

总结

以上就是本文关于Spring中利用配置文件和@value注入属性值代码详解的全部内容,希望对大家有所帮助。有什么问题可以随时留言,小编会及时回复大家的。

原文链接:http://blog.csdn.net/woshixuye/article/details/54999993

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Spring中利用配置文件和@value注入属性值代码详解 https://www.kuaiidc.com/77148.html

相关文章

发表评论
暂无评论