SpringMVC通过注解方式读取properties文件中的值

        本方法是结合Java配置及XML配置来完成。

         首先定义XML配置文件 app.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/util  
                           http://www.springframework.org/schema/util/spring-util.xsd
    ">
    <util:properties id="app" location="classpath:spittr/props/app.properties"></util:properties>
    <util:properties id="mess" location="classpath:spittr/i18n/messages_zh_CN.properties">
</util:properties>
</beans>

         然后在RootConfig.java配置文件中引入XML文件:

@Configuration
@ImportResource("classpath:spittr/**/app.xml")
@ComponentScan(basePackages={"spittr"},
                excludeFilters={@Filter(type=FilterType.ANNOTATION,value=EnableWebMvc.class)})
public class RootConfig {}

         RootConfig.java在用Java配置启动SpringMVC的时候用到:

public class SpittrWebAppInitializer extends
        AbstractAnnotationConfigDispatcherServletInitializer {
    
    //通常用来配置其它Bean,通常是驱动应用后端的数据层及中间层组件
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[]{RootConfig.class};
    }
    //通常用来配置控制,视图解析器以及处理器映射
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[]{WebConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

}

完成以上配置后,即可读取定义的properties文件中的值,

定义两个properties资源文件,spittr/props/app.properties,spittr/i18n/messages_zh_CN.properties,文件名前为路径,

app.properties内容如下:

spittr.welcome=欢迎来到Spittr世界!

messages_zh_CN.properties内容如下:

spittr=欢迎使用Spittr系统

测试代码:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=RootConfig.class)
public class I18nTest {   
    @Value("#{app['spittr.welcome']}")
    private String wel;
    @Value("#{mess['spittr']}")
    private String spit;
    @Test
    public void test(){
        System.out.println(wel);
        System.out.println(spit);
    }
}

@RunWith的作用是在测试的时候自动创建Spring的应用上下文,注解@ContextConfiguration告诉它需要在测试代码里加载指定的配置文件,即在测试代码中引入了相关的资源文件,因此能正常通过SpEL表达式读取properties文件中的值。

资料参考:《Spring实战(第4版)》

        

转载于:https://my.oschina.net/daigd/blog/758094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值