自动注入properties文件 @Value的使用

本文详细介绍如何在Spring框架中配置利用<util/>命名空间加载外部属性文件,并通过注解方式实现属性值的自动注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 因为在下面要用到Spring的<util />配置,所以,首先要引入其对应的命名空间,即要在applicationContext.xml中加入以下的配置:

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:context="http://www.springframework.org/schema/context"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-4.1.xsd
                        http://www.springframework.org/schema/util
                        http://www.springframework.org/schema/util/spring-util-4.1.xsd">


2.既然要让Spring使用注解来自动注入,则要让其去对自己的配置的类进行注解组件的扫描,则需要配置如下(根据自己的路径进行修改配置):

Xml代码  
<context:component-scan base-package="com.*******.landpage"/>


3. 创建一个资源文件,具体为止视自己的项目而定,我的文件放在 ftp.properties,内容如下:

Java代码 

4. 让Spring载入资源文件,在applicationContext.xml 加入以下配置:

Xml代码
<util:properties id="ftp" location="classpath:ftp.properties"/>

  

5. 创建java文件,让Spring注入从资源文件中读取到的属性的值:

Java代码 
    @Value("#{ftp['ftp.ip']}")
    private String ip;

    @Value("#{ftp['ftp.port']}")
    private int port;


 注意:这里的#{ftp} 是与第四步的id=ftp相对应的

 

<?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:context="http://www.springframework.org/schema/context"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-4.1.xsd
                        http://www.springframework.org/schema/util
                        http://www.springframework.org/schema/util/spring-util-4.1.xsd">

    <context:component-scan base-package="com.sunlands.landpage"/>


    <context:property-placeholder
            location="classpath:jdbc.properties,classpath:redis.properties,classpath:263.properties,classpath:mail.properties"
            ignore-unresolvable="true"/>

    <util:properties id="app" location="classpath:appconfig.properties"/>
    <util:properties id="ftp" location="classpath:ftp.properties"/>

    <import resource="classpath:spring/applicationContext-dataSource.xml"/>
    <import resource="classpath:spring/applicationContext-dao.xml"/>
    <import resource="classpath:spring/applicationContext-service.xml"/>
    <import resource="classpath:spring/applicationContext-task.xml"/>
    <import resource="classpath:spring/cache-applicationContext.xml"/>
    <import resource="classpath:spring/applicationContext-security.xml"/>

</beans>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值