有些应用由于需求,将配置信息放在数据库中,这样可以方便管理,同时也可以通过系统的管理界面动态的维护系统。基于这样的需求,引用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
相关推荐
- **value/ref/local/parent属性**:用于设置属性值或引用其他Bean。其中,`ref`用于引用同一工厂中的Bean,`local`仅限于同一XML文件,`parent`用于引用模板Bean。 - **<list>/<map>/<set>/<props>`元素**:用于...
在定义了Bean之后,我们可以通过`addPropertyReference`方法来设置其属性值。这里的`addPropertyReference`用于设置`UserService`中的`userAcctDAO`属性,该属性将引用名为`UserAcctDAO`的另一个Bean。 ```java ...
Spring支持通过属性值、构造器参数、setter方法等多种方式进行注入。 6. **运行环境与构建工具**: 题目描述中提到的运行环境是Eclipse,这是一个流行的Java集成开发环境,提供了便捷的代码编辑、调试等功能。而...
在给定的标题"Java Bean 遍历和使用注解给Bean的属性添加属性值"中,我们可以深入探讨两个主要主题:Java Bean的遍历和注解的应用。 1. **Java Bean遍历**: - **反射机制**:遍历Java Bean通常涉及使用Java的反射...
在这个例子中,`key`属性用于指定Map中的键,`value-ref`则引用了Bean的ID。 总结来说,Spring通过XML配置进行Bean的值注入,特别是集合类型的注入,能够灵活地管理对象间的依赖关系。这种方式使得代码更易于测试和...
在Spring框架中,Bean的属性注入是核心功能之一,它允许我们为Bean对象设置各种属性值,以便在应用运行时创建和配置完全初始化的对象。在本篇内容中,我们将深入探讨Spring如何处理Bean的属性注入,包括对象属性的...
1. **属性注入**:通过`<property>`标签设置Bean的属性值,如XML配置示例所示。 2. **构造器注入**:使用`<constructor-arg>`标签指定构造函数参数,或者在注解配置中使用`@Autowired`配合构造函数。 3. **setter...
- **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...
在Spring中,Bean的管理包含多个方面:创建Bean实例、配置Bean属性、控制Bean的生命周期以及Bean作用域的定义。接下来将详细解释这些知识点。 1. Spring的工厂类: Spring通过工厂模式设计了一系列工厂类来创建对象...
本文将详细讲解使用注解方式进行Bean属性注入的方法,以及相关的源码和工具应用。 首先,让我们了解Spring中的注解。在Spring 2.5版本之后,引入了基于注解的配置,这使得我们可以直接在类或方法上使用注解来声明...
Spring还提供了多种注入方式,如`属性值注入`、`引用注入`(注入其他Bean)等。 ### 名称空间p Spring的名称空间`p`是为简化属性注入而设计的一种XML配置语法糖。在传统的XML配置中,我们通常使用`<property>`标签...
`PropertyPathFactoryBean`是Spring提供的一个用于获取其他Bean的属性值并将其作为新Bean的属性值进行注入的工具类。它主要用于实现复杂的属性注入需求,例如获取某个Bean的嵌套属性值,并将该值注入到另一个Bean中...
- **功能概述**:`<property>`元素用于设置Bean的属性值,可以是简单的值、对其他Bean的引用、列表、集合等。 - **`name`属性**:表示要设置的属性名称。 - **`<value>`元素**:用于设置简单类型的属性值。 - **`...
3. **初始化**:在属性注入完成后,Spring会执行Bean实现的初始化回调方法,这些方法可以通过实现`InitializingBean`接口的`afterPropertiesSet()`方法或者使用`init-method`属性来指定。此外,还可以通过配置`@...
`<property>`元素用于设置Bean的属性值,`name`属性对应于Java对象的属性名,`value`属性则提供属性值。 2. **Bean的生命周期** 在Spring中,Bean的生命周期包括初始化、正常使用、以及销毁三个阶段。你可以通过在...
5. **InitializingBean接口**:如果Bean实现了`InitializingBean`接口,Spring会在所有必需的属性设置后调用`afterPropertiesSet()`方法。这个接口的方法调用时机晚于`@PostConstruct`注解的方法,因此实例化顺序会...
- 属性注入:通过直接设置Bean的属性值。 - 方法注入:通过调用Bean的方法来注入依赖。 5. Spring Bean 的扩展功能 - AOP(面向切面编程):Spring提供了一套AOP框架,可以实现切面、通知、代理等概念,实现代码...
`property`标签用于设置Bean的属性值,`ref`属性则引用了另一个Bean。 接下来,Spring使用Java的反射机制来实例化Bean。反射允许程序在运行时动态地获取类的信息(如类名、方法名等)并调用它们。在上述例子中,...
2. **属性注入**:接着,Spring会根据Bean定义中的依赖注入(DI)信息,为Bean的属性设置值。这可以是通过setter方法、构造函数或者字段注入实现。 3. **初始化回调**:在属性注入完成后,Spring会调用Bean的初始化...
在Spring框架中,Bean的属性注入是核心功能之一,它允许我们通过配置文件或注解来设置Bean的属性值,从而实现对象的依赖管理。在本主题“day38 14-Spring的Bean的属性的注入:集合属性的注入”中,我们将深入探讨...