`

Spring入门实例-bean初始化-beanfactorypostproperty

阅读更多

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());
	}
}
 

 

 

 

分享到:
评论

相关推荐

    Spring Bean创建初始化流程.docx

    9. **Bean初始化**: 最后,`initializeBean(beanName, exposedObject, mbd)`对创建好的Bean进行初始化,包括调用初始化方法(如果有`@PostConstruct`注解的方法),以及执行AOP代理等操作。 整个流程中,Spring...

    Spring实例化Bean顺序

    4. **启动后处理器(BeanPostProcessor)**:这些是特殊类型的Bean,它们在所有常规Bean实例化之后,但初始化之前进行处理。它们的实例化顺序由`@Order`注解决定,或者通过实现`Ordered`接口来控制。 5. **...

    spring-beans-3.0.xsd

    例如,`&lt;bean&gt;`元素是配置中最基础的部分,用于定义一个bean实例,包括其类名、初始化方法、属性注入等。此外,还有`&lt;alias&gt;`用于为bean创建别名,`&lt;import&gt;`引入其他配置文件,以及`&lt;property&gt;`用于设置bean的属性...

    spring入门学习-3、Bean装配(XML).pdf

    2. **初始化**:当Spring IoC容器加载时,会根据配置文件中的信息创建Bean实例,并执行任何指定的初始化方法。 3. **使用**:开发者可以通过Spring容器获取Bean的实例并进行使用。 4. **销毁**:在某些情况下,...

    spring bean XML配置入门

    一旦XML配置加载到Spring容器中,容器将根据配置创建Bean实例,并按照定义进行初始化、依赖注入,最后完成Bean的生命周期管理。 10. **实践操作**: 在实际开发中,我们可以使用Eclipse的Spring插件来简化Bean...

    spring学习----工厂Bean

    工厂Bean允许开发者在对象实例化时进行更复杂的控制,比如引入特定的初始化过程、依赖注入或者资源管理。这篇博文将深入探讨工厂Bean的工作原理和使用场景。 首先,让我们理解什么是Bean。在Spring中,Bean是IoC...

    Spring Bean的初始化和销毁实例详解

    Spring Bean的初始化和销毁实例详解 Spring Bean的初始化和销毁是Spring框架中一个非常重要的概念,它们都是Bean生命周期中不可或缺的一部分。在Spring框架中,我们可以使用多种方式来控制Bean的初始化和销毁,以下...

    Spring入门--PPT教程

    4. 编写SpringDemo1.java或SpringDemo2.java:这两个示例类是Spring程序的入口,它们会读取配置文件,初始化bean,并调用HelloBean的方法。例如,SpringDemo1可以这样实现: ```java import org.springframework....

    简单Spring框架模拟器--Demo

    在这个阶段,你将学习到BeanFactory如何解析XML配置,创建Bean实例,并执行初始化方法,理解Bean的生命周期管理。 “tiny-spring-step-3-inject-bean-with-property.zip”带你走进依赖注入的世界。这个步骤通过属性...

    spring-test-3.2.0.RELEASE.jar

    `@Sql`注解可以用来在测试前后执行SQL脚本,用于初始化或清理数据库状态,确保测试的隔离性。同时,`@Transactional`注解可以开启事务,测试结束后自动回滚,避免对数据库造成影响。 5. **测试报告:** Spring ...

    Sping学习笔记(2)----实例化Bean的三种方式

    这篇“Spring学习笔记(2)----实例化Bean的三种方式”着重讲解了如何在Spring应用上下文中初始化Bean。以下是这三种方式的详细说明: 1. **XML配置方式** 在早期的Spring版本中,XML配置是最常见的实例化Bean的...

    spring-jdbc-4.2.xsd.zip

    3. `&lt;bean&gt;`:这是Spring配置文件中的基础元素,用于定义Bean的实例化、配置及依赖关系。在`spring-jdbc-4.2.xsd`中,它可以用来定义DataSource、JdbcTemplate等组件。 4. `&lt;jee:jndi-lookup&gt;`:用于从JNDI目录服务...

    spring入门学习-hello,world

    为了运行这个简单的例子,我们需要编写一个启动类,该类会加载配置文件并初始化`HelloWorld` bean: ```java import org.springframework.context.ApplicationContext; import org.springframework.context.support...

    spring boot入门--创建项目到数据库连接

    Spring Boot 是一个基于 Spring 框架的快速开发工具,它简化了初始化和配置过程,使得开发者能够更快地构建高质量的 Java 应用程序。在这个“spring boot入门--创建项目到数据库连接”的教程中,我们将深入探讨如何...

    【框架源码篇 04】Spring源码手写篇-Bean定义配置化

    Spring会自动处理依赖关系,确保在使用Bean之前,其依赖的对象已经被正确地初始化和注入。 Bean的作用域是另一个重要的概念。Spring支持单例(Singleton)、原型(Prototype)、请求(Request)、会话(Session)和...

    Spring源码学习六:bean初始化1

    在本篇文章中,我们将深入探讨Spring源码中关于Bean初始化的过程,特别是`finishBeanFactoryInitialization()`方法和`preInstantiateSingletons()`方法。 首先,`finishBeanFactoryInitialization(Confi‌...

    浅谈spring容器中bean的初始化

    默认情况下,如果未明确指定`scope`属性,Bean的默认作用域是`singleton`,这意味着Spring容器会创建一个共享的实例,并在容器启动时或首次请求时初始化这个实例。在示例代码中,通过`ApplicationContext`获取到的`...

    struts2-spring-plugin-2.3.4.jar

    通过Struts 2-Spring 插件,我们可以将Struts 2 的Action 对象交给Spring 来管理,Spring 负责初始化、配置和销毁这些对象。这样,Action 类不再需要自己去创建依赖的对象,而是通过构造函数或setter 方法接收Spring...

    Spring 源码分析(Bean的初始化)

    总结起来,Spring的Bean初始化是一个复杂而精细的过程,涉及XML解析、BeanDefinition的构建、依赖注入、初始化回调、AOP代理等多个环节。通过深入理解这一过程,开发者能更好地掌握Spring框架的工作原理,从而更高效...

    Spring 实例化Bean的三种方式

    这种方法的优势在于它可以提供更多的灵活性,例如可以在创建Bean时进行额外的配置或初始化操作。 假设我们想要创建`Chinese`类的实例,但是希望在创建时执行一些额外的逻辑,如读取配置信息或进行预处理,我们可以...

Global site tag (gtag.js) - Google Analytics