文章关键字:|Spring|XML|bean|java|测试|
spring除了支持XML格式的bean声明外,还对属性文件格式和编程方式注册也提供了支持。
首先先创建一个用于测试的bean对象的java文件,TextStyle.java。
package lm.java.spring.bean.factory.test;
public class TextStyle {
private String fontName = "default";
private int fontSize = 9;
private boolean bold = false;
private boolean italic = false;
public String getFontName() {
return fontName;
}
public void setFontName(String fontName) {
this.fontName = fontName;
}
public int getFontSize() {
return fontSize;
}
public void setFontSize(int fontSize) {
this.fontSize = fontSize;
}
public boolean isBold() {
return bold;
}
public void setBold(boolean bold) {
this.bold = bold;
}
public boolean isItalic() {
return italic;
}
public void setItalic(boolean italic) {
this.italic = italic;
}
}
一、对于读取属性文件这种bean声明,使用org.springframework.beans.factory.support.PropertiesBeanDefinitionReader装载bean声明。
例:
1.在ClASSPATH下创建一个styles.properties文件。
myStyle.class=lm.java.spring.bean.factory.test.TextStyle
myStyle.fontName=Arial
myStyle.fontSize=12
yourStyle.class=lm.java.spring.bean.factory.test.TextStyle
yourStyle.fontName=Times
yourStyle.fontSize=10
yourStyle.bold=true
yourStyle.italic=true
2.创建一个PropertiesBeanFactoryTest测试类。
package lm.java.spring.bean.factory.test;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.PropertiesBeanDefinitionReader;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
public class PropertiesBeanFactoryTest {
public static void main(String[] args) {
// ClassPathResource的默认路径是工程下面的bin文件夹为根路径
Resource resource = new ClassPathResource("lm\\java\\spring\\bean\\factory\\test\\styles.properties");
// 使用DefaultListableBeanFactory和PropertiesBeanDefinitionReader配置bean工厂
DefaultListableBeanFactory dbf = new DefaultListableBeanFactory();
PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(dbf);
reader.loadBeanDefinitions(resource);
TextStyle dfmyStyle = (TextStyle) dbf.getBean("myStyle");
System.out.println(dfmyStyle.getFontName() + " , " +
dfmyStyle.getFontSize() + " , " + dfmyStyle.isBold() + "," +
dfmyStyle.isItalic());
TextStyle dbfyourStyle = (TextStyle) dbf.getBean("yourStyle");
System.out.println(dbfyourStyle.getFontName() + " , " +
dbfyourStyle.getFontSize() + " , " + dbfyourStyle.isBold() + "," +
dbfyourStyle.isItalic());
}
}
运行后的结果
Arial , 12 , false,false
Times , 10 , true,true
二、对于编程方式注册bean声明,可以使用Spring提供的org.springframework.beans.support.RootBeanDefinition类和org.springframework.beans.MutablePropertyValues类协作装载bean声明。
例:创建一个RootBeanDefinitionTest测试类。
package lm.java.spring.bean.factory.test;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.RootBeanDefinition;
public class RootBeanDefinitionTest {
public static void main(String[] args) {
DefaultListableBeanFactory dbf = new DefaultListableBeanFactory();
MutablePropertyValues myStylePv = new MutablePropertyValues();
myStylePv.addPropertyValue("fontName", "Arial");
myStylePv.addPropertyValue("fontSize", "12");
RootBeanDefinition myStyleRbd = new RootBeanDefinition(TextStyle.class, myStylePv);
dbf.registerBeanDefinition("myStyle", myStyleRbd);
MutablePropertyValues yourStylePv = new MutablePropertyValues();
myStylePv.addPropertyValue("fontName", "Times");
myStylePv.addPropertyValue("fontSize", "10");
myStylePv.addPropertyValue("bold", "true");
myStylePv.addPropertyValue("italic", "true");
RootBeanDefinition yourStyleRbd = new RootBeanDefinition(TextStyle.class, yourStylePv);
dbf.registerBeanDefinition("yourStyle", yourStyleRbd);
TextStyle dfmyStyle = (TextStyle) dbf.getBean("myStyle");
System.out.println(dfmyStyle.getFontName() + " , " +
dfmyStyle.getFontSize() + " , " + dfmyStyle.isBold() + "," +
dfmyStyle.isItalic());
TextStyle dbfyourStyle = (TextStyle) dbf.getBean("yourStyle");
System.out.println(dbfyourStyle.getFontName() + " , " +
dbfyourStyle.getFontSize() + " , " + dbfyourStyle.isBold() + "," +
dbfyourStyle.isItalic());
}
}
运行后的结果
Arial , 12 , false,false
Times , 10 , true,true
未完,原文地址:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9172
分享到:
相关推荐
在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...
spring 重新动态加载数据库或xml中的bean,可以不用重启tomcat
### Spring配置文件:整理与总结Spring中XML配置的最佳实践 #### 概述 Spring框架作为一个强大的Java应用框架,在企业级应用开发中占据了重要的地位。它为普通的Java对象(Plain Old Java Objects, POJOs)提供了...
在这个特定的"spring IOC反射装载bean"的主题中,我们将深入探讨Spring如何通过XML配置文件来加载和管理Bean,并利用Java的反射机制来实例化这些Bean。 首先,Spring容器通过读取XML配置文件来获取Bean的定义。这些...
Spring框架的核心特性之一就是依赖注入(DI)和控制反转(IoC),而这些功能主要是通过XML配置文件来实现的。随着项目的规模不断增大,如何管理和优化这些XML配置文件就变得非常关键。下面,我们将详细探讨Spring ...
Spring 中使用 XML 配置 Bean 的细节 Spring 框架中使用 XML 配置 Bean 是一种常见的方式,它可以帮助开发者轻松地管理 Bean 的依赖关系和生命周期。在本文中,我们将详细介绍 Spring 中使用 XML 配置 Bean 的细节...
DI允许你将bean的依赖关系明确地声明出来,而不是硬编码在代码中。这样可以提高代码的可测试性、可维护性和松耦合性。在上面的例子中,`name`属性的注入就是依赖注入的一种体现。 **作用域(Scope)** Spring bean...
然而,在某些情况下,我们可能需要在非Spring注解的类中访问Spring容器中的Bean,或者在这些类中使用YAML配置文件中的配置信息。本篇将详细介绍如何在这样的场景下实现这一目标。 首先,让我们来理解如何在非Spring...
- **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...
在Spring框架中,XML配置是早期最常用的配置方式,它提供了详细且灵活的方式来定义和管理Bean的生命周期。本文将深入探讨Spring如何通过XML配置来装配Bean。 首先,要创建XML配置,你需要创建一个新的XML文件,通常...
通过Apache CXF框架创建Web服务,并结合Spring框架进行管理,从而能够灵活地返回不同类型的数据,包括List、自定义Bean对象、纯文本String以及常见的数据交换格式JSON和XML。这种集成方式使得服务端能够更加便捷地...
7. **XML配置中的bean定义**:尽管大部分配置可以通过注解完成,但在某些情况下,我们仍需在XML文件中声明bean,例如,当需要自定义初始化方法、配置特定的bean属性,或者处理非Java组件(如数据库连接池)时。...
本篇文章主要讲解Spring框架中的XML配置方式,帮助开发者理解如何通过XML配置文件来管理Bean的生命周期和装配。 1. **Spring XML配置基础** Spring框架的配置文件通常以`applicationContext.xml`命名,这是Spring...
在Spring框架中,声明式事务管理是实现事务处理的一种高效且灵活的方式,它允许开发者通过XML配置或注解来定义事务边界,而无需在业务逻辑代码中显式地调用开始、提交或回滚事务的方法。这篇博文"Spring使用XML配置...
使用XML配置文件(`beans.xml`)来声明Bean。在`resources`目录下创建此文件,并指定`MyService`类的Bean定义。 ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
在XML配置中,我们可以通过`<bean>`标签来声明一个单例bean,如: ```xml <bean id="exampleBean" class="com.example.ExampleBean"/> ``` 上述配置会创建一个`ExampleBean`的实例,并在需要时提供给其他bean...
首先,我们要知道Spring IoC容器是通过XML配置文件、注解或Java配置类来管理Bean的生命周期。Bean的实例化顺序取决于以下因素: 1. **定义顺序**:在XML配置中,如果Bean的定义顺序明确,那么按照它们在文件中的...
XML配置文件用于声明应用程序中的bean及其依赖关系,例如类的实例化、属性设置、方法调用等。通过`<bean>`标签,我们可以创建和管理对象,而`<property>`标签则用来注入依赖。例如: ```xml <bean id="exampleBean...
`@Component`注解的类会自动被Spring扫描并注册为Bean,而`@Configuration`类则提供了更高级别的配置方式,可以替代XML配置文件。 此外,Spring提供了一种名为BeanPostProcessor的接口,它允许我们自定义Bean实例化...
Spring基于xml文件配置Bean过程详解 Spring 框架是一个功能强大且灵活的Java应用程序框架,它提供了一个完整的ioc容器,来管理Bean的生命周期。Spring框架基于xml文件配置Bean是指通过xml文件来配置Bean的创建过程...