`

spring 读取properties文件

阅读更多

spring 读取properties文件

spring 版本:4.3.2.RELEASE

注解方式

使用PropertySource

package com.stub.conf;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
/**
 * Created by 黄威 on 9/18/16.<br >
 */
@Configuration
@PropertySource({"classpath:/com/app.properties","classpath:/${appPath}/app2.properties"})
//@PropertySources({
//        @PropertySource("classpath:/com/app.properties"),
//        @PropertySource("classpath:/${appPath}/app2.properties")
//})
public class EnvMyBean {
    @Autowired
    Environment env;

    public String getProperty(String key){
        return env.getProperty(key);
    }
}

 说明:

变量${appPath}是从第一个配置文件(classpath:/com/app.properties)中读取的.

注意:低版本(例如3.2.3.RELEASE)的spring 是无法读取${appPath}

如何使用呢?

在控制器中注入EnvMyBean即可.

 

 

profile

适用场景:

(a)测试环境,使用@ActiveProfiles 指定profile

@ActiveProfiles(profiles = "dev")
public class DevConfigTest {
//code here
}

 

(b)不同的环境使用不同的配置

通过配置web.xml:

<context-param>
  <param-name>spring.profiles.active</param-name>
  <param-value>DOUBLEUPMINT</param-value>
</context-param>

 

(c)通过程序指定

AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.getEnvironment().setActiveProfiles("dev");
ctx.register(SomeConfig.class, StandaloneDataConfig.class, JndiDataConfig.class);
ctx.refresh();

 也可以重载全局监听器:

import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.ServletContextEvent;

/**
 * Created by 黄威 on 9/18/16.<br >
 */
public class ApplicationListener extends ContextLoaderListener {
    public ApplicationListener(WebApplicationContext context) {
        super(context);
        ConfigurableEnvironment environment = (ConfigurableEnvironment) context.getEnvironment();
        System.out.println("ApplicationListener contructor");
        System.out.println(environment);
    }

    public ApplicationListener() {
        super();
    }

    @Override
    public void contextInitialized(ServletContextEvent event) {
        super.contextInitialized(event);
        WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());
        ConfigurableEnvironment environment = (ConfigurableEnvironment) ctx.getEnvironment();
        System.out.println(environment);
        environment.setActiveProfiles("production");
    }
}

 

使用PropertyPlaceholderConfigurer 需要在xml配置

<bean id="PropertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>classpath:properties/app.properties</value>
			</list>
		</property>
	</bean>

  

 

参考:http://javabeat.net/profile-annotation-spring-4/

 

  • 大小: 315.7 KB
0
0
分享到:
评论

相关推荐

    spring读取properties

    ### Spring读取Properties文件的核心知识点 #### 1. **引入PropertyPlaceholderConfigurer** 在Spring的配置文件中,首先需要定义一个`PropertyPlaceholderConfigurer` bean,这是Spring用来解析Properties文件并...

    Spring 读取properties文件key+value方式.rar

    Spring框架提供了强大的属性配置管理,能够帮助开发者轻松地读取和使用properties文件中的key-value对。本教程将深入探讨如何在Spring中以不同的方式读取properties文件,以便更好地理解和应用这些配置。 首先,...

    读取properties文件返回map

    1. **properties文件结构** `properties`文件的结构非常简单,每行代表一个键值对,键和值之间用等号`=`或冒号`:`分隔。例如: ``` username=admin password=123456 database.url=jdbc:mysql://localhost:3306/...

    Spring用代码来读取properties文件实例解析

    Spring读取Properties文件实例解析 Spring框架中,读取Properties文件是一个非常重要的步骤,Properties文件中存储着应用程序的配置信息,如数据库连接信息、Server配置信息等。在Spring应用程序中,我们可以使用@...

    spring无法读取properties文件数据问题详解

    Spring 无法读取 properties 文件数据问题详解 Spring 框架在读取 properties 文件数据时可能会遇到一些问题,本文将对这些问题进行详细的解释和解决。 问题一:Controller 中无法读取 properties 文件数据 在 ...

    SSM 读取properties文件

    在Spring框架中,读取properties文件主要通过两种方式:`PropertyPlaceholderConfigurer` 和 `@Value` 注解。 1. **PropertyPlaceholderConfigurer**: 这是一个Spring的bean定义类,它允许我们从properties文件中...

    spring读取配置文件

    本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`这两种不同的上下文环境来加载它们。 首先,让我们了解`...

    sftp直接以url模式读取-----------包括servlet如何借用springproperties取文件

    标题 "sftp直接以url模式读取-----------包括servlet如何借用springproperties取文件" 提到的是在Java开发中,如何通过SFTP(Secure File Transfer Protocol)协议以URL模式读取远程文件,并结合SpringProperties来...

    Spring3.0 配置文件中加载Properties文件的小例子

    在上面的配置中,`${db.driver}`、`${db.url}`、`${db.username}`和`${db.password}`都是从Properties文件中读取的属性值。Spring会自动替换这些占位符,使得我们的数据源bean能够正确连接到数据库。 除了上述方法...

    java实现properties文件读取

    本篇将深入探讨如何使用Java来实现Properties文件的读取。 首先,我们需要了解Properties类在Java中的作用。`java.util.Properties`是Java提供的一个类,它继承了`Hashtable`,主要用于处理属性列表(键/值对)。...

    java读取properties配置文件

    本文将详细介绍如何在Java中读取`properties`配置文件。 首先,我们需要了解`properties`文件的格式。一个标准的`.properties`文件通常包含多个行,每行由一个键和一个值组成,它们之间用等号(`=`)或冒号(`:`)...

    读取.properties文件

    此外,对于大型项目,可能需要更高级的解决方案,例如使用Spring框架的`@Value`注解或`@ConfigurationProperties`,这样可以在运行时自动注入配置信息,减少手动读取文件的步骤。 在开发过程中,有一些工具可以帮助...

    spring-demo09-读取properties配置文件内容.zip

    在Spring框架中,读取`properties`配置文件是常见的任务,用于管理应用程序的配置信息,如数据库连接字符串、服务端口、系统环境变量等。本文将深入探讨如何在Spring项目中实现这一功能。 首先,我们需要一个`...

    JAVA读取properties文件的值

    // 加载properties文件 props.load(input); } catch (IOException ex) { ex.printStackTrace(); } finally { if (input != null) { try { input.close(); } catch (IOException e) { e.printStackTrace(); ...

    spring读取jar中的配置文件

    当我们的应用程序被打包成JAR文件后,有时我们需要从JAR内部读取配置文件,例如application.properties或application.yml。本文将深入探讨如何在Spring框架中实现这一功能。 首先,理解Spring的资源配置。Spring...

    java读取properties文件,连接数据库

    在Java编程中,读取`.properties`文件是常见的任务,这些文件通常用于存储配置信息,如数据库连接参数。本文将详细介绍如何使用Java读取`.properties`文件并利用这些信息连接到数据库。 首先,我们需要理解`....

    读取以及修改properties文件

    - 如Apache Commons Configuration或Spring框架都提供了更高级的Properties文件处理功能,支持更复杂的配置结构和动态更新。 总结来说,Java中的Properties文件是配置管理的关键组件。通过`java.util.Properties`...

    JAVA 解决Properties文件保存中文乱码

    本文将深入探讨如何在Java中解决Properties文件保存和读取中文乱码的挑战。 首先,我们需要理解Java默认使用ISO-8859-1编码来处理Properties文件。由于此编码不支持大部分中文字符,因此在保存或加载包含中文的...

    Spring Boot多模块配置文件读取

    在Spring Boot应用中,多模块配置文件的读取是一个重要的实践,它有助于提高代码的可维护性和模块化。本文将详细探讨如何在Spring Boot的多模块项目中管理和使用不同的配置文件,以实现低耦合的设计。 首先,了解...

    谈谈Spring 注入properties文件总结

    这里,`@Value`注解直接在字段上,从properties文件中读取指定的属性值。 2. 使用`@ConfigurationProperties`注解: ```java @Configuration @ConfigurationProperties(prefix = "ds1.jdbc") public class ...

Global site tag (gtag.js) - Google Analytics