`
qiuguo0205
  • 浏览: 242570 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

将 java.util.Properties 作为参数传入Spring [初级]

阅读更多

在一个应用中,需要将 java.util.Properties 作为参数传入 一个类中,并读出其中的一个参数

 

package cn.com.test.spring.properties;

import java.util.Properties;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class PropertyTest {
	
	private Properties pro;

	public void setPro(Properties pro) {
		this.pro = pro;
	}

	public Properties getPro() {
		return pro;
	}
	
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("context_test_property.xml");
		PropertyTest test = (PropertyTest)context.getBean("PropertyTest");
		System.out.println(test.getPro().get("testString"));
	}
}

 

如何将java.util.Properties以一个Bean的形式传入该类呢?可以使用Spring的静态工厂方法:

首先定义一个类实现一个返回 Properties的静态方法:

 

package cn.com.test.spring.properties;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

public class Configuration {
	private static Properties pro = null;

	public static Properties getProperties(String propertyFile)
			throws FileNotFoundException, IOException {
		if (pro == null) {
			pro = new Properties();
			pro.load(new FileInputStream(propertyFile));
		}
		return pro;
	}
}

 

 然后在配置文件中注册这个静态工厂方法即可

 

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

	<bean id="PropertyTest" class="cn.com.test.spring.properties.PropertyTest">
		<property name="pro" ref="prop" />
	</bean>

	<bean id="prop" class="cn.com.test.spring.properties.Configuration"
		factory-method="getProperties">
		<constructor-arg
			value="E:\Project\Java\Spring\springstudy\src\test.properties" />
	</bean>
</beans>

 

如果在src的根路径下有文件test.propertie,其内容是:

testString=this is a test string for the test of a property file

 

则运行程序将打印出这句话

 

分享到:
评论
1 楼 javapub 2011-12-01  
Good, very useful. ecpecially the calss "Configuration "

相关推荐

    Java读取.properties文件 的四种方法

    ### 方法一:使用`java.util.Properties` Java标准库提供了一个`Properties`类,专门用于处理`.properties`文件。以下是一个简单的示例: ```java import java.io.IOException; import java.io.InputStream; ...

    properties动态获取参数

    在给定的场景中,"properties动态获取参数"指的是在运行时根据动态传入的参数,从`properties`文件中检索相应的配置值。这在很多情况下非常有用,例如,当应用程序需要根据环境变量或用户输入来调整其行为时。 首先...

    JAVA读取properties文件的值

    可以传入第二个参数作为默认值,如 `props.getProperty("key", "default_value")`。 ### 4. 处理编码问题 默认情况下,`Properties`类使用平台默认编码加载和保存文件。如果文件编码不是平台默认的,需要指定编码...

    Spring Cloud Gateway的全局异常处理

    1. **构造函数**:继承`DefaultErrorWebExceptionHandler`类,并传入必要的参数。 2. **`getErrorAttributes`方法**:覆盖父类方法,用于获取异常属性。在这个方法中,我们根据异常类型设置了不同的HTTP状态码...

    详解APP微信支付(java后台_统一下单和回调)

    这个方法需要传入总金额、描述、请求对象等参数,然后生成预支付订单信息。预支付订单信息包括订单号、支付金额、支付描述等信息。 三、回调函数的处理 在微信支付成功后,微信服务器会根据提供的回调地址进行回调...

    Spring中文帮助文档

    2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)...

    Spring API

    2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)...

    springmybatis

    MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个...

    Spring Mvc AOP通过注解方式拦截controller等实现日志管理

    Spring MVC AOP日志管理通常与日志框架(如Log4j、Logback或Java内置的java.util.logging)集成。以下以Log4j为例: 1. 引入依赖:在项目pom.xml中添加Log4j的依赖。 2. 配置Log4j:创建log4j.properties或log4j....

    springboot的实现word文档下载.zip

    在Spring Boot的配置文件`application.yml`或`application.properties`中,我们需要添加Freemarker的相关配置,例如: ```yaml spring: freemarker: template-loader-path: classpath:/templates/ suffix: ....

    java程序多国语言示例

    Java提供了`java.util.ResourceBundle`类来管理和加载这些资源包。以下是一些关于Java多国语言支持的关键知识点: 1. **Resource Bundle创建**:首先,你需要为每种语言创建一个.properties文件,例如`messages_en....

    day38 13-Spring的Bean的属性的注入:SpEL注入

    在上面的例子中,`currentTime`字段将被当前的日期时间初始化,而`doSomething`方法的`configProp`参数将从应用的属性配置文件中获取值。 SpEL表达式的语法非常丰富,支持算术运算、比较操作、逻辑运算、数组和集合...

    25个经典的Spring面试问答

    【注入Java.util.Properties】 Spring允许注入Properties对象,通常用于读取配置文件。 【自动装配】 Spring的自动装配功能可以自动将Bean的依赖关系建立起来,有byName、byType、constructor、autodetect和no等...

    SpringBoot 2.0.2.RELEASE以注解的形式整合 Mybatis+PageHelper (分页)

    &lt;groupId&gt;org.mybatis.spring.boot &lt;artifactId&gt;mybatis-spring-boot-starter &lt;version&gt;2.1.0 &lt;groupId&gt;com.github.pagehelper&lt;/groupId&gt; &lt;artifactId&gt;pagehelper-spring-boot-starter &lt;version&gt;5.1.2 ``` ...

    common-configuration的一些应用

    `TestConfiguration.java`很可能是一个Java类,用于处理配置文件的读取和解析工作。在Java中,我们可以利用`java.util.Properties`类来加载和操作`.properties`文件,如`config.properties`和`configiiff.properties...

    tomcat下struts2的log4j日志配置.doc

    这可以通过在`web.xml`中添加一个`context-param`元素来实现,将Log4j的配置文件路径作为参数传递,例如: ```xml ... &lt;param-name&gt;log4jConfigLocation &lt;param-value&gt;/WEB-INF/classes/log4j.properties ...

    struts2发送Email

    import java.util.Properties; public class SendEmailAction { public String sendEmail() { Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls....

    testFreemark.zip

    - 格式化输出:`&lt;@ftlmacro name="formatDate" date="java.util.Date"&gt;...&lt;@/ftlmacro&gt;`自定义宏,增强模板功能。 4. **Spring Boot中的FreeMarker配置** - 自定义模板路径:可以通过`spring.freemarker.template...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    有了 BlazeDS,通过简单的配置,一个 Java 接口就可以作为服务暴露给 Flex,供其远程调用。 尽管现有的 EmployeeMgmt 应用程序已经有了 Façade 接口,但这个接口是暴露给 Servlet 使用的,最好能再为 Flex 定义另...

Global site tag (gtag.js) - Google Analytics