16在bean中获取Resource

Posted 大扑棱蛾子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了16在bean中获取Resource相关的知识,希望对你有一定的参考价值。

本章我们讲如何在Bean中获取Resource,就是在Spring中如何向我们的Bean注入Resource。下面我们来实现这个功能。

编写Bean

这里我们实现一个工具类,用于读取Properties文件并提供一个方法用于根据key获取对应的值。

package com.codestd.springstudy.resource;

import java.util.Properties;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.io.Resource;

public class PropertiesUtils implements InitializingBean

    private Properties properties;

    private Resource resource;

    public void setResource(Resource resource) 
        this.resource = resource;
    

    @Override
    public void afterPropertiesSet() throws Exception 
        properties = new Properties();
        properties.load(this.resource.getInputStream());
    

    public String get(String key)
        return (String) this.properties.get(key);
    


Properties文件

spel/setup.properties

system.name=spel

配置Bean

<bean id="propertiesUtils" class="com.codestd.springstudy.resource.PropertiesUtils">
    <property name="resource" value="classpath:spel/setup.properties"/>
</bean>

测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:resource/applicationContext.xml")
public class PropertiesUtilsTest 

    @Autowired
    private PropertiesUtils propertiesUtils;

    @Test
    public void testGet() 
        String value = this.propertiesUtils.get("system.name");
        assertEquals("spel", value);
    

以上是关于16在bean中获取Resource的主要内容,如果未能解决你的问题,请参考以下文章

@Resource

@Bean

8 -- 深入使用Spring -- 3...3 使用Resouce作为属性

spring mvc如何使用resource

bean基于Annotation装配;@Resource和@Autowired区别

Servlet中使用注解@Resource注入service,该怎么办