`
xieyan30
  • 浏览: 49091 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

spring 引用bean的属性值

 
阅读更多

有些应用由于需求,将配置信息放在数据库中,这样可以方便管理,同时也可以通过系统的管理界面动态的维护系统。基于这样的需求,引用bean的属性是一个很好的解决方案。

1,首先我们建立一个从db取得系统参数的类,这里只给了一个模拟。

package spring3.useBeanProp;

public class SystemConfigFromDB {

	private int sessionTimeOut;
	private int maxPageNum;

	public void init() {
		// 假设下面的值从db获取的
		setSessionTimeOut(30);
		setMaxPageNum(10);
	}

	public int getSessionTimeOut() {
		return sessionTimeOut;
	}

	public void setSessionTimeOut(int sessionTimeOut) {
		this.sessionTimeOut = sessionTimeOut;
	}

	public int getMaxPageNum() {
		return maxPageNum;
	}

	public void setMaxPageNum(int maxPageNum) {
		this.maxPageNum = maxPageNum;
	}

}

 2,建立应用工程的系统信息管理类,这类中可能一部分是从DB取得,一部分可能是定数等等

package spring3.useBeanProp;

public class ApplicationManager {
	private int sessionTimeOut;
	private int maxPageNum;
	private int sysInfo1;
	private int sysInfo2;

	public int getSessionTimeOut() {
		return sessionTimeOut;
	}

	public void setSessionTimeOut(int sessionTimeOut) {
		this.sessionTimeOut = sessionTimeOut;
	}

	public int getMaxPageNum() {
		return maxPageNum;
	}

	public void setMaxPageNum(int maxPageNum) {
		this.maxPageNum = maxPageNum;
	}

	public int getSysInfo1() {
		return sysInfo1;
	}

	public void setSysInfo1(int sysInfo1) {
		this.sysInfo1 = sysInfo1;
	}

	public int getSysInfo2() {
		return sysInfo2;
	}

	public void setSysInfo2(int sysInfo2) {
		this.sysInfo2 = sysInfo2;
	}
}

 3,配置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:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="systemConfigFromDB" 
          class="spring3.useBeanProp.SystemConfigFromDB" 
          init-method="init"/>

    <bean id="applicationManager" 
          class="spring3.useBeanProp.ApplicationManager" 
          p:sessionTimeOut="#{systemConfigFromDB.sessionTimeOut}" 
          p:maxPageNum="#{systemConfigFromDB.maxPageNum}"/>

</beans>

4,测试

package spring3.useBeanProp;

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

public class Main {

	public static void main(String[] args) {
		ApplicationContext app = new ClassPathXmlApplicationContext(
				"spring3/useBeanProp/useBeanProp.xml");
		ApplicationManager manager = (ApplicationManager) app
				.getBean("applicationManager");
		System.out.println(manager.getMaxPageNum());
		System.out.println(manager.getSessionTimeOut());
	}
}

 测试结果:

10
30

 

 

分享到:
评论

相关推荐

    spring bean 属性总结

    - **value/ref/local/parent属性**:用于设置属性值或引用其他Bean。其中,`ref`用于引用同一工厂中的Bean,`local`仅限于同一XML文件,`parent`用于引用模板Bean。 - **&lt;list&gt;/&lt;map&gt;/&lt;set&gt;/&lt;props&gt;`元素**:用于...

    spring运行过程中动态注册bean

    在定义了Bean之后,我们可以通过`addPropertyReference`方法来设置其属性值。这里的`addPropertyReference`用于设置`UserService`中的`userAcctDAO`属性,该属性将引用名为`UserAcctDAO`的另一个Bean。 ```java ...

    spring bean XML配置入门

    Spring支持通过属性值、构造器参数、setter方法等多种方式进行注入。 6. **运行环境与构建工具**: 题目描述中提到的运行环境是Eclipse,这是一个流行的Java集成开发环境,提供了便捷的代码编辑、调试等功能。而...

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

    在给定的标题"Java Bean 遍历和使用注解给Bean的属性添加属性值"中,我们可以深入探讨两个主要主题:Java Bean的遍历和注解的应用。 1. **Java Bean遍历**: - **反射机制**:遍历Java Bean通常涉及使用Java的反射...

    Spring (bean怎样注入值)学习实例

    在这个例子中,`key`属性用于指定Map中的键,`value-ref`则引用了Bean的ID。 总结来说,Spring通过XML配置进行Bean的值注入,特别是集合类型的注入,能够灵活地管理对象间的依赖关系。这种方式使得代码更易于测试和...

    day38 11-Spring的Bean的属性的注入:对象属性

    在Spring框架中,Bean的属性注入是核心功能之一,它允许我们为Bean对象设置各种属性值,以便在应用运行时创建和配置完全初始化的对象。在本篇内容中,我们将深入探讨Spring如何处理Bean的属性注入,包括对象属性的...

    Spring的Bean配置

    1. **属性注入**:通过`&lt;property&gt;`标签设置Bean的属性值,如XML配置示例所示。 2. **构造器注入**:使用`&lt;constructor-arg&gt;`标签指定构造函数参数,或者在注解配置中使用`@Autowired`配合构造函数。 3. **setter...

    spring bean的生命周期

    - **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...

    Spring bean 管理

    在Spring中,Bean的管理包含多个方面:创建Bean实例、配置Bean属性、控制Bean的生命周期以及Bean作用域的定义。接下来将详细解释这些知识点。 1. Spring的工厂类: Spring通过工厂模式设计了一系列工厂类来创建对象...

    day38 17-Spring的Bean的属性注入:注解方式

    本文将详细讲解使用注解方式进行Bean属性注入的方法,以及相关的源码和工具应用。 首先,让我们了解Spring中的注解。在Spring 2.5版本之后,引入了基于注解的配置,这使得我们可以直接在类或方法上使用注解来声明...

    day38 12-Spring的Bean的属性的注入:名称空间p

    Spring还提供了多种注入方式,如`属性值注入`、`引用注入`(注入其他Bean)等。 ### 名称空间p Spring的名称空间`p`是为简化属性注入而设计的一种XML配置语法糖。在传统的XML配置中,我们通常使用`&lt;property&gt;`标签...

    知识共享-Spring注入属性值案例(雷惊风).

    `PropertyPathFactoryBean`是Spring提供的一个用于获取其他Bean的属性值并将其作为新Bean的属性值进行注入的工具类。它主要用于实现复杂的属性注入需求,例如获取某个Bean的嵌套属性值,并将该值注入到另一个Bean中...

    Spring的Bean配置说明

    - **功能概述**:`&lt;property&gt;`元素用于设置Bean的属性值,可以是简单的值、对其他Bean的引用、列表、集合等。 - **`name`属性**:表示要设置的属性名称。 - **`&lt;value&gt;`元素**:用于设置简单类型的属性值。 - **`...

    spring bean life cycle

    3. **初始化**:在属性注入完成后,Spring会执行Bean实现的初始化回调方法,这些方法可以通过实现`InitializingBean`接口的`afterPropertiesSet()`方法或者使用`init-method`属性来指定。此外,还可以通过配置`@...

    spring装配bean实例代码

    `&lt;property&gt;`元素用于设置Bean的属性值,`name`属性对应于Java对象的属性名,`value`属性则提供属性值。 2. **Bean的生命周期** 在Spring中,Bean的生命周期包括初始化、正常使用、以及销毁三个阶段。你可以通过在...

    Spring实例化Bean顺序

    5. **InitializingBean接口**:如果Bean实现了`InitializingBean`接口,Spring会在所有必需的属性设置后调用`afterPropertiesSet()`方法。这个接口的方法调用时机晚于`@PostConstruct`注解的方法,因此实例化顺序会...

    粗略实现spring创建bean

    - 属性注入:通过直接设置Bean的属性值。 - 方法注入:通过调用Bean的方法来注入依赖。 5. Spring Bean 的扩展功能 - AOP(面向切面编程):Spring提供了一套AOP框架,可以实现切面、通知、代理等概念,实现代码...

    spring IOC反射装载bean

    `property`标签用于设置Bean的属性值,`ref`属性则引用了另一个Bean。 接下来,Spring使用Java的反射机制来实例化Bean。反射允许程序在运行时动态地获取类的信息(如类名、方法名等)并调用它们。在上述例子中,...

    Spring中Bean的生命周期 applicationcontext的应用(实现国际化,事件的传递)

    2. **属性注入**:接着,Spring会根据Bean定义中的依赖注入(DI)信息,为Bean的属性设置值。这可以是通过setter方法、构造函数或者字段注入实现。 3. **初始化回调**:在属性注入完成后,Spring会调用Bean的初始化...

    day38 14-Spring的Bean的属性的注入:集合属性的注入

    在Spring框架中,Bean的属性注入是核心功能之一,它允许我们通过配置文件或注解来设置Bean的属性值,从而实现对象的依赖管理。在本主题“day38 14-Spring的Bean的属性的注入:集合属性的注入”中,我们将深入探讨...

Global site tag (gtag.js) - Google Analytics