spring 读取properties文件--通过注解方式

news/2025/2/26 4:53:17

问题:

  需要通过properties读取页面的所需楼盘的名称.为了以后便于修改.

解决:

  可以通过spring的 PropertiesFactoryBean 读取properties属性,就不需要自己通过jdk的Properties类编写程序读取信息.

     <!-- 第二种方式是使用注解的方式注入,主要用在java代码中使用注解注入properties文件中相应的value值 -->
     <bean id="prop" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
         <property name="locations"><!-- 这里是PropertiesFactoryBean类,它也有个locations属性,也是接收一个数组,跟上面一样 -->
             <array>
                 <value>classpath:recommondHouse.properties</value>
             </array>
         </property>
          <!-- 设置编码格式 -->
        <property name="fileEncoding" value="UTF-8"></property>
     </bean>

注意:  需要设置fileEncoding,否则会出现乱码情况,在eclipse中也需要设置properties编码情况,否则页面会显示一堆字符和字母,无法显示汉字,eclipse中设置如下:

 

如图,修改3编码为utf-8,点击update即可.

随后通过@Value注解通过get,set方法注入数据.

package com.fyinqing.util;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component("test")
public class PropertiesUtil {

@Value("#{prop.name1}")
private String name1;

@Value("#{prop.name2}")
private String name2;

@Value("#{prop.name3}")
private String name3;

@Value("#{prop.name4}")
private String name4;

public String getName2() {
return name2;
}

public void setName2(String name2) {
this.name2 = name2;
}

public String getName3() {
return name3;
}

public void setName3(String name3) {
this.name3 = name3;
}

public String getName4() {
return name4;
}

public void setName4(String name4) {
this.name4 = name4;
}

public String getName1() {
return name1;
}

public void setName1(String name1) {
this.name1 = name1;
}

public List<String> getNameList(){
List<String> list = new ArrayList<String>();
list.add(name1);
list.add(name2);
list.add(name3);
list.add(name4);
return list;
}
}

 

 测试如下:(只写了关键代码)

@Autowired
    PropertiesUtil propUtil;

@Test
public void test4() {
System.out.println(propUtil.getNameList());
}

 

 

 

转载于:https://www.cnblogs.com/lishuaiqi/p/9707767.html


http://www.niftyadmin.cn/n/2815541.html

相关文章

tomcat7.0jvm设置

点击java&#xff0c;进入&#xff0c; 加入以下代码 -XX:PermSize256M -XX:MaxPermSize512m -Xms1024m -Xmx1024m

linux 和的区别,号使用

linux中经常会用到将内容输出到某文件当中&#xff0c;只需要在执行命令后面加上>或者>>号即可进入操作。大于号&#xff1a;将一条命令执行结果&#xff08;标准输出&#xff0c;或者错误输出&#xff0c;本来都要打印到屏幕上面的&#xff09;重定向其它输出设备&am…

ORACLE导入数据库时,提示表空间不存在

昨天晚上从别人那接来一个数据库&#xff0c;让我帮他还原到他的电脑上&#xff0c;后来我就按照平时创建表空间&#xff0c;创建用户&#xff0c;导入时提示部分表提示表空间不存在&#xff0c;好悲剧&#xff0c;第一次出现这种情况&#xff0c;无奈下删除表空间&#xff0c;…

微软以白金会员加入 OpenChain 开源组织

OpenChain 提供了一个符合开源供应链许可的行业标准&#xff0c;目前由 Linux 基金会维护。微软作为 OpenChain 的白金会员&#xff0c;正式加入该项目。OpenChain 很重要&#xff0c;开源软件从一名工程师的应用程序发展到价值数十亿美金的业务&#xff0c;如何保证这些程序中…

ORACLE修改数据类型时提示要修改字段必须为空

前几天在处理数据库时&#xff0c;要修改数据库某字段的精度&#xff0c;但是提示 要修改字段较多&#xff0c;总结了下&#xff0c;用以下语句处理比较快 1、备份 create table tablename_bak as select * from tablename; 2、删除表内的数据 delete from tablename; 3、…

程序员经典语录

世界上最遥远的距离&#xff0c;是我在if里你在else里&#xff0c;似乎一直相伴又永远分离&#xff1b; 世界上最痴心的等待&#xff0c;是我当case你是switch&#xff0c;或许永远都选不上自己&#xff1b; 世界上最真情的相依&#xff0c;是你在try我在catch。无论你发神马脾…

Java并发55:并发集合系列-基于预占模式+链表的单向阻塞无界队列LinkedTransferQueue

[超级链接&#xff1a;Java并发学习系列-绪论] [系列序章&#xff1a;Java并发43:并发集合系列-序章] 原文地址&#xff1a;https://blog.csdn.net/YJian2008/article/details/16951811 TransferQueue TransferQueue是一个继承了BlockingQueue的接口&#xff0c;并且增加若干…

基于django的视频点播网站开发-step7-我的收藏喜欢功能

从本讲起&#xff0c;我们会讲到个人菜单中另外两个比较重要的功能&#xff0c;“我的收藏”与“我的喜欢”。感兴趣的同学可以点击网站的右上角&#xff0c;即可弹出个人菜单&#xff0c;你就能看到“我的收藏”与“我的喜欢”了。通过学习这两个功能&#xff0c;我们会加深对…