spring中利用xml 声明配置bean 和添加property属性

xml 配置bean 和property属性
在class对象中用到的属性map,list,string等都可以放在xml配置文件中按照property属性注入
其实是使用了setter方法配置bean,配置的属性必须要用set方法才可以,使用时直接使用即可,避免了在代码中初始化。
问题:首先由一个FileUpLoadController,在该类中用Autowired注解注入FileUpUtils。
而类FileUpUtils需要一些配置参数,比如文件服务器接口的路径和方法名,而这些参数,
我们想要配置在properties文件中。

解决: 1.在properties中配置参数

#文件服务器
file.upload.url=http://100.10.0.10/fs-api/
upload.file.method=uploadFile.hc
download.file.method=downloadFile.hc
search.file.method=searchFile.hc
remove.file.method=removeFile.hc

2.在xml中读取properties中的属性,并赋值到FileUpUtils的bean的property属性中。

<!-- 引入配置文件 -->
    <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:data-access.properties" />
    </bean>
    <!-- 文件服务器工具类,因为上面已经读取properties文件,所以下面就可以直接取值 -->
    <bean id="fileUploadUtils" class="com.contract.service.utils.FileUploadUtils">
        <property name="fileUploadUrl" value="${file.upload.url}"></property>
        <property name="uploadFile" value="${upload.file.method}"></property>
        <property name="downloadFile" value="${download.file.method}"></property>
        <property name="searchFile" value="${search.file.method}"></property>
        <property name="removeFile" value="${remove.file.method}"></property>
    </bean>

3.在FileUpUtils中直接用Autowired注解,获取fileUploadUrl,uploadFile等参数。
但是这种方法在项目启动的时候报错。这是因为在扫描组件的时候,
初始化FileUploadController时候,要初始化FileUpUtils,但是这个时候,
FileUpUtils中的fileUploadUrl等参数,还没有被初始化,获取不到因此,没有值。
这个时候程序启动的时候被报错。因为Autowired属性默认的是required=true,
也就是该参数是必须的,因此报错,这个时候我们在@Autowired注解后面加一个
required=false。也就是@Autowired(required=false) 这样就可以了,
而且程序启动后进行程序操作的时候,FileUpUtils已经初始化成功,并且参数注入,
也就是可以正常的进行使用了。

https://blog.csdn.net/pigqhf/article/details/88559581

如下初始化一个map:

在service中直接通过@Resource注入

@Resource
private Map<String, String> templateMap;

在xml中配置<util>标签,还可以添加list、set等不同标签

<util:map id="templateMap">
        <entry key="a" value="test1"/>
        <entry key="b" value="test2"/>
        <entry key="c" value="test3"/>
        <entry key="d" value="test4"/>
    </util:map>

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值