`
yanghelin
  • 浏览: 1302 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java获取spring属性文件方式

阅读更多
1、在xml文件中直接获取,或者几个xml文件之间共享。
<!-- 加载全局配置文件 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/config/jdbc.properties</value>
<value>/WEB-INF/config/mail.properties</value>
<value>/WEB-INF/config/hibernate.properties</value>
</list>
</property>
</bean>
此种方式可以在这三个xml之间进行变量互相读取。也可以在本xml文件中读取。其它文件不能读取到此三个文件中的变量。
此种方式不仅仅局限于.properties文件,.xml也可以。
2、利用java.util.Properties读取属性文件
java 代码:
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("mail.properties");
Properties properties = new Properties();
try {
properties.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("mail.sender:"+properties.getProperty("mail.sender"));
3、在javaben中利用注解的方式获得属性文件信息。【此方法适合于spring2.5及以上版本使用】
【此方法是:通过get方法获取对应的属性信息,优点是代码中使用方便,缺点是如果代码中需用到新的属性信息,需对Mail.java做相应的添加修改】
定义一个javabean,利用注解将代码中需要使用的属性信息注入。、
Java代码
@Component("mail")
public class Mail {
@Value("${mail.user}"
private String user;

@Value("${mail.sender}")
private String sender;

@Value("${mail.stmp}")
private String stmp;

public String getUser() {
return user;
}

public String getSender() {
return sender;
}
public String getStmp() {
return stmp;
}
}
使用的时候,在业务类中注入该对象:
@Autowired
private Mail mail;
在spring的xml主文件中加入以下代码:
<context:component-scan base-package="com.meimei.business.model" />//此包中包含Mail对象。

4、采用自定义类,继承spring中的PropertyPlaceholderConfigurer类来实现java中获取属性key
1)、spring配置
<bean id="propertyConfigurer"
class="com.meimei.core.util.ReadPropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>/WEB-INF/config/jdbc.properties</value>
<value>/WEB-INF/config/mail.properties</value>
<value>/WEB-INF/config/hibernate.properties</value>
</list>
</property>
</bean>
2)、自定义类ReadPropertyPlaceholderConfigurer.java。【可以实现通过此类的getContextProperty获取到对应的属性了。】
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

/**
* 继承PropertyPlaceholderConfigurer类处理返回结果;
*
* @author yanghl
* @date 2013-03-24
*/
public class ReadPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
    private static Map<String, Object> propertiesMap;

    @Override
    protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException { 
        super.processProperties(beanFactoryToProcess, props);
        propertiesMap = new HashMap<String, Object>();
        for (Object key : props.keySet()) {
            String keyStr = key.toString();
            String value = props.getProperty(keyStr);
            propertiesMap.put(keyStr, value);
        }
    }
    public static Object getContextProperty(String name) {
        return propertiesMap.get(name);
    }
}
3)、在业务类中获取属性文件的内容
String mailStmp = (String)ReadPropertyPlaceholderConfigurer.getContextProperty("mail.stmp");
分享到:
评论

相关推荐

    JAVA Spring使用外部属性文件

    在Java Spring框架中,使用外部属性文件是一种常见的最佳实践,它允许我们将应用程序的配置信息与源代码分离,便于管理、维护和环境间的切换。本文将深入探讨如何在Spring应用中利用外部属性文件,以及其背后的原理...

    JAVA获取FTP文件列表

    ### JAVA获取FTP文件列表知识点详解 #### 一、概述 在现代软件开发中,FTP(File Transfer Protocol)是一种广泛使用的协议,用于在网络上进行文件传输。本文档将详细介绍一个基于Java的实用工具类`FtpClientUtil`...

    Java Spring文件上传,Java文件上传,Java通用文件上传

    在Java Spring框架中,文件上传是一项常见的功能,用于接收用户通过Web界面提交的文件。Spring提供了强大的MultipartFile接口,使得处理文件上传变得简单且高效。本文将深入探讨如何使用Java和Spring实现文件上传,...

    java模拟spring ioc

    在Java编程领域,Spring框架是应用最广泛的轻量级框架之一,尤其以其依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IOC)的核心特性著称。这篇博客“java模拟spring ioc”很可能...

    spring使用属性文件

    Spring支持多种方式加载属性文件,包括类路径(classpath)下的文件、文件系统中的文件以及资源访问URL。默认情况下,Spring会查找`src/main/resources`目录下的`application.properties`。 3. **@PropertySource...

    Spring Boot技术知识点:如何获取application.yml配置文件里的相关属性(方法1)

    总结起来,Spring Boot通过`@ConfigurationProperties`注解提供了一种类型安全的方式来访问`application.yml`中的配置,同时`Environment`接口作为通用的解决方案,适用于获取任何环境属性。这两种方式都能有效管理...

    spring获取weblogic jndi数据源的两种方式

    ### Spring 获取 WebLogic JNDI 数据源的两种方式 在Spring框架中,通过JNDI(Java Naming and Directory Interface)可以方便地访问WebLogic服务器中的数据源。这为应用程序提供了高度解耦的数据访问机制,使得...

    Spring学习笔记(8)----属性注入的方式

    这里`${property.name}`是SpEL表达式,可以从属性文件中读取对应的值。 五、Profile-based注入 Spring还支持基于profile的注入,允许我们在不同的环境中使用不同的配置。通过`@Profile`注解可以指定Bean在哪个...

    Spring动态加载配置文件

    `PropertyPlaceholderConfigurer`是Spring早期版本中处理属性文件的工具,而`@PropertySource`则是从Spring 3.1引入的新特性,它们都可以用来从外部属性文件中读取值并注入到bean中。 1. `...

    spring 的属性管理

    下面我们将深入探讨Spring属性管理的相关知识点。 1. **属性源(Property Sources)** Spring允许开发者定义多个属性源,例如从不同的文件、环境变量或系统属性中加载属性。这些属性源可以按照优先级排序,使得在...

    Spring Boot技术知识点:如何获取application.yml配置文件里的相关属性(方法2)

    在这个主题中,我们将深入探讨如何利用Java代码从`application.yml`配置文件中获取相关属性,采用的是方法2。 首先,我们需要了解`application.yml`文件的结构。这是一种YAML格式的文件,它允许我们以键值对的形式...

    java project整合spring和hibernate 例子

    在Java开发领域,Spring和Hibernate是两个非常重要的框架。Spring是一个全面的后端应用程序框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等核心特性,而Hibernate则是一个优秀的对象关系映射...

    spring读取jar中的配置文件

    Spring支持多种方式加载配置,包括XML、Java配置类和属性文件。在处理JAR内的配置文件时,通常会使用`@PropertySource`注解来指示Spring从特定资源加载属性。例如: ```java @Configuration @PropertySource(...

    动态加载属性文件与SpringQuartz的应用

    在IT行业中,动态加载属性文件和Spring Quartz的整合应用是一个重要的技术话题,特别是在构建大型、分布式和可扩展的系统时。下面将详细讲解这两个概念及其相互间的应用。 首先,我们来了解一下动态加载属性文件。...

    关于springboot 配置文件中属性变量引用方式@@解析

    这种属性应用方式是 field_name=@field_value@。 两个@符号是springboot为替代${}属性占位符产生,原因是${}会被maven处理,所以应该是起不到引用变量的作用。 @@方式可以引用springboot非默认配置文件(即其他...

    spring bean 属性总结

    ### Spring Bean 属性详解 Spring框架是Java平台上的一个开源框架,主要用来简化企业级应用程序的开发。在Spring中,核心概念之一就是Bean,它是一个简单的Java对象,由Spring IoC容器管理。Spring通过XML配置文件...

    java类文件通过$获取properties文件的属性值

    ### Java 类文件通过 $ 获取 properties 文件的属性值 在Java开发中,经常需要读取配置文件中的信息,例如数据库连接信息、系统环境变量等。这些配置通常存储在`.properties`文件中,便于维护和管理。本文将详细...

    Spring属性占位符PropertyPlaceholderConfigurer的使用

    总的来说,Spring属性占位符`PropertyPlaceholderConfigurer`是处理配置文件灵活性的关键工具,它提高了代码的可读性和可维护性,同时也简化了多环境配置的管理。通过正确理解和运用这个功能,开发者可以更高效地...

    Java Bean 遍历和使用注解给Bean的属性添加属性值

    Java Bean遍历是获取并操作Bean对象属性的过程,而注解是现代Java中用于元数据的一种方式,可以给Bean的属性添加额外的信息或行为。 在给定的标题"Java Bean 遍历和使用注解给Bean的属性添加属性值"中,我们可以...

Global site tag (gtag.js) - Google Analytics