Spring入门实例-beanfactorypostprocessor
实例:
配置文件:
<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-2.5.xsd">
<bean id="configBean" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>com/myspring/beanfacotrypostprocessor/hello.properties</value>
</property>
</bean>
<!--
<bean class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
<property name="location">
<value>com/myspring/beanfacotrypostprocessor/hello.properties</value>
</property>
</bean>
-->
<bean id="helloBean" class="com.myspring.beanfacotrypostprocessor.PostBean">
<property name="dbname">
<value>oracle</value>
</property>
</bean>
<bean id="helloBean2" class="com.myspring.beanfacotrypostprocessor.PostBean">
<property name="dbname">
<value>${db_mysql}</value>
</property>
</bean>
</beans>
在properties文件中,可以使用覆盖PropertyOverrideConfigurer,直接写helloBean.dbname="mysql"覆盖原值
或是使用PropertyPlaceholderConfigurer使用${db_mysql},db_mysql="mysql"赋值dbname属性
properties文件:
helloBean.dbname=mysql
db_mysql=sqlserver
bean:
public class PostBean
{
private String dbname;
public void setDbname(String dbname)
{
this.dbname = dbname;
}
public String getDbname()
{
return dbname;
}
}
测试main:
public class TestPropertyPost
{
public static void main(String[] args)
{
ApplicationContext context = new ClassPathXmlApplicationContext("com/myspring/beanfacotrypostprocessor/propertypostxml.xml");
PostBean pb = (PostBean) context.getBean("helloBean2");
System.out.println(pb.getDbname());
}
}
分享到:
相关推荐
9. **Bean初始化**: 最后,`initializeBean(beanName, exposedObject, mbd)`对创建好的Bean进行初始化,包括调用初始化方法(如果有`@PostConstruct`注解的方法),以及执行AOP代理等操作。 整个流程中,Spring...
4. **启动后处理器(BeanPostProcessor)**:这些是特殊类型的Bean,它们在所有常规Bean实例化之后,但初始化之前进行处理。它们的实例化顺序由`@Order`注解决定,或者通过实现`Ordered`接口来控制。 5. **...
例如,`<bean>`元素是配置中最基础的部分,用于定义一个bean实例,包括其类名、初始化方法、属性注入等。此外,还有`<alias>`用于为bean创建别名,`<import>`引入其他配置文件,以及`<property>`用于设置bean的属性...
2. **初始化**:当Spring IoC容器加载时,会根据配置文件中的信息创建Bean实例,并执行任何指定的初始化方法。 3. **使用**:开发者可以通过Spring容器获取Bean的实例并进行使用。 4. **销毁**:在某些情况下,...
一旦XML配置加载到Spring容器中,容器将根据配置创建Bean实例,并按照定义进行初始化、依赖注入,最后完成Bean的生命周期管理。 10. **实践操作**: 在实际开发中,我们可以使用Eclipse的Spring插件来简化Bean...
工厂Bean允许开发者在对象实例化时进行更复杂的控制,比如引入特定的初始化过程、依赖注入或者资源管理。这篇博文将深入探讨工厂Bean的工作原理和使用场景。 首先,让我们理解什么是Bean。在Spring中,Bean是IoC...
Spring Bean的初始化和销毁实例详解 Spring Bean的初始化和销毁是Spring框架中一个非常重要的概念,它们都是Bean生命周期中不可或缺的一部分。在Spring框架中,我们可以使用多种方式来控制Bean的初始化和销毁,以下...
4. 编写SpringDemo1.java或SpringDemo2.java:这两个示例类是Spring程序的入口,它们会读取配置文件,初始化bean,并调用HelloBean的方法。例如,SpringDemo1可以这样实现: ```java import org.springframework....
在这个阶段,你将学习到BeanFactory如何解析XML配置,创建Bean实例,并执行初始化方法,理解Bean的生命周期管理。 “tiny-spring-step-3-inject-bean-with-property.zip”带你走进依赖注入的世界。这个步骤通过属性...
`@Sql`注解可以用来在测试前后执行SQL脚本,用于初始化或清理数据库状态,确保测试的隔离性。同时,`@Transactional`注解可以开启事务,测试结束后自动回滚,避免对数据库造成影响。 5. **测试报告:** Spring ...
这篇“Spring学习笔记(2)----实例化Bean的三种方式”着重讲解了如何在Spring应用上下文中初始化Bean。以下是这三种方式的详细说明: 1. **XML配置方式** 在早期的Spring版本中,XML配置是最常见的实例化Bean的...
3. `<bean>`:这是Spring配置文件中的基础元素,用于定义Bean的实例化、配置及依赖关系。在`spring-jdbc-4.2.xsd`中,它可以用来定义DataSource、JdbcTemplate等组件。 4. `<jee:jndi-lookup>`:用于从JNDI目录服务...
为了运行这个简单的例子,我们需要编写一个启动类,该类会加载配置文件并初始化`HelloWorld` bean: ```java import org.springframework.context.ApplicationContext; import org.springframework.context.support...
Spring Boot 是一个基于 Spring 框架的快速开发工具,它简化了初始化和配置过程,使得开发者能够更快地构建高质量的 Java 应用程序。在这个“spring boot入门--创建项目到数据库连接”的教程中,我们将深入探讨如何...
Spring会自动处理依赖关系,确保在使用Bean之前,其依赖的对象已经被正确地初始化和注入。 Bean的作用域是另一个重要的概念。Spring支持单例(Singleton)、原型(Prototype)、请求(Request)、会话(Session)和...
在本篇文章中,我们将深入探讨Spring源码中关于Bean初始化的过程,特别是`finishBeanFactoryInitialization()`方法和`preInstantiateSingletons()`方法。 首先,`finishBeanFactoryInitialization(Confi...
默认情况下,如果未明确指定`scope`属性,Bean的默认作用域是`singleton`,这意味着Spring容器会创建一个共享的实例,并在容器启动时或首次请求时初始化这个实例。在示例代码中,通过`ApplicationContext`获取到的`...
通过Struts 2-Spring 插件,我们可以将Struts 2 的Action 对象交给Spring 来管理,Spring 负责初始化、配置和销毁这些对象。这样,Action 类不再需要自己去创建依赖的对象,而是通过构造函数或setter 方法接收Spring...
总结起来,Spring的Bean初始化是一个复杂而精细的过程,涉及XML解析、BeanDefinition的构建、依赖注入、初始化回调、AOP代理等多个环节。通过深入理解这一过程,开发者能更好地掌握Spring框架的工作原理,从而更高效...
这种方法的优势在于它可以提供更多的灵活性,例如可以在创建Bean时进行额外的配置或初始化操作。 假设我们想要创建`Chinese`类的实例,但是希望在创建时执行一些额外的逻辑,如读取配置信息或进行预处理,我们可以...