`
liuyiyou
  • 浏览: 23404 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

使用构造方法实例化bean

阅读更多

1,使用空构造器进行定义,使用这个方式,class属性指定的类必须有空构造器。
    eg:
    <bean id="bean1" class="cn.javass.spring.chapter2.HelloImpl2"/>

    2,使用有参数构造器进行定义,使用此种方式,可以使用<constructor-arg>标签指定构造器参数值,其中index表示位置,value表示常量值,也可以指定引用,指定引用使用ref来引用另外一个bean的定义。
package org.spring.chapter2.helloworld;

public interface HelloApi {

	void sayHello();
}

 package org.spring.chapter2.helloworld;

public class HelloImpl2 implements HelloApi {

	private String message;
	
	public HelloImpl2() {
		this.message="Hello World in Empty Constructor";
	}

	public HelloImpl2(String message) {
		this.message = message;
	}

	@Override
	public void sayHello() {
		System.out.println(message);
	}

}

 <?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:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans   
	     				http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
						http://www.springframework.org/schema/context           
     					http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	<!-- id 表示你这个组件的名字,class表示组件类 -->
	<bean id="bean1" class="org.spring.chapter2.helloworld.HelloImpl2"></bean>
	<bean id="bean2" class="org.spring.chapter2.helloworld.HelloImpl2">
	   <constructor-arg index="0" value="Hello Spring"></constructor-arg>
	</bean>
</beans>

  @Test

	public void testConstructor(){
		//1:读取配置文件实例化一个Ioc容器
		ApplicationContext context = new ClassPathXmlApplicationContext("org/spring/chapter2/helloworld/helloworld2.xml");
		
		//2:从容器中获取bean,注意此处是面向接口编程,而不是面向对象
		
		//3:调用空的构造函数,应该打印构造函数里面的那一句
		System.out.println("------------打印空构造函数-----------------------");
		HelloApi helloApi1 = context.getBean("bean1",HelloApi.class);
		helloApi1.sayHello();
		System.out.println("------------打印带参数的构造函数-----------------------");
		//4:调用有参数的构造函数,打印Hello Spring
		HelloApi helloApi2 = context.getBean("bean2",HelloApi.class);
		helloApi2.sayHello();
	}
分享到:
评论

相关推荐

    Spring 实例化Bean的三种方式

    本文将深入探讨Spring中实例化Bean的三种主要方式:构造器注入、静态工厂方法注入以及实例工厂方法注入。 #### 1. 构造器注入(Constructor Injection) 构造器注入是指通过调用Bean类的构造器来创建Bean实例。...

    SpingIOC注入实例化bean

    - **工厂方法**:可以定义一个静态或非静态工厂方法,Spring调用这个方法来实例化bean。 3. **依赖注入(DI)** Spring的依赖注入允许bean之间通过接口而非具体实现进行耦合,提高了代码的可测试性和可维护性。...

    浅谈springioc实例化bean的三个方法

    Spring IOC实例化Bean有三种方法:构造器实例化、静态工厂方法实例化和实例工厂方法实例化。每种方法都有其优缺,选择哪种方法取决于实际需求。 在实际开发中,我们可以根据需要选择合适的实例化方法。例如,如果...

    Spring项目bean实例化代码

    **构造方法实例化**是最常见的Bean创建方式。在Spring配置文件中,可以通过`&lt;bean&gt;`标签的`constructor-arg`子标签来指定构造函数参数,Spring会根据这些参数调用相应的构造函数来创建Bean实例。例如: ```xml ...

    Spring Bean实例化实现过程解析

    静态工厂方法实例化是指通过静态工厂方法来实例化 Bean。这意味着,我们可以通过静态工厂方法来创建 Bean 实例,而不是通过容器来实例化 Bean。 例如,在 com.itheima.instance.static_factory 包中,我们定义了一...

    Spring Bean重复执行两次(实例被构造两次)问题分析

    如果一个BeanA依赖于另一个BeanB,同时BeanB也依赖于BeanA,那么Spring在处理依赖关系时可能会陷入循环引用,导致两个Bean都实例化两次。 3. **@PostConstruct与初始化回调**:Spring允许我们在Bean初始化后执行...

    Java开发学习(四)----bean的三种实例化方式.doc

    这三种方式分别是:构造方法实例化、静态工厂方法实例化和实例工厂方法实例化。我们将深入探讨构造方法实例化这一主题。 首先,为了开始我们的实验,我们需要设置一个基本的开发环境。这包括创建一个Maven项目,并...

    Spring实例化bean过程解析及完整代码示例

    在实例化bean时,Spring首先会调用Bean的默认构造方法(当然也可以是指定的其它构造方法),生成bean实例。例如,在我们的代码示例中,我们定义了一个Employee类,它实现了InitializingBean、DisposableBean和...

    详解Spring中bean实例化的三种方式

    本文将详细探讨Spring中bean实例化的三种主要方式:普通构造方法创建、静态工厂创建和实例工厂创建。 1. 普通构造方法创建: 这是最常见、最直观的方式,适用于大部分情况。在Spring配置文件中,我们通过`&lt;bean&gt;`...

    Spring实例化bean的方式代码详解

    在Spring框架中,实例化bean是核心功能之一,它涉及到对象的创建、初始化和管理。本篇文章将详细探讨Spring实例化bean的三...希望本文内容对理解和使用Spring实例化bean有所帮助,如果有任何疑问或建议,欢迎交流讨论。

    基于java的企业级应用开发:Bean的实例化.ppt

    首先,最常见的Bean实例化方式是**构造器实例化**。在Spring配置文件中,我们通过`&lt;bean&gt;`标签指定Bean的`id`和`class`属性,`class`属性指定了Bean对应的类路径。例如,在`beans1.xml`中定义的`bean1`就是通过构造...

    Spring框架系列(8) - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等).doc

    Bean 的生命周期流程包括实例化、依赖注入、初始化、使用、销毁等阶段。在 Bean 的生命周期中,我们需要了解 Bean 的生命周期案例,以便更好地理解 Bean 的生命周期。 本文主要研究了 Spring 框架中 Bean 的实例化...

    BeanFactory的实例化

    在 Spring 项目中,可以从文件系统资源实例化 BeanFactory,这种方法可以使得 BeanFactory 从外部文件中加载 Bean 的定义。下面是一个简单的示例代码: ```java Resource res = new FileSystemResource("src\\...

    Spring工厂方法创建(实例化)bean实例代码

    Spring工厂方法创建(实例化)bean实例代码 Spring框架中提供了多种方式来创建bean实例,包括通过构造器、静态工厂方法和实例工厂方法等。这种方式可以让开发者更好地控制bean的创建过程,实现更多的自定义需求。 ...

    java bean实例

    3. **实例化Bean**:容器根据配置信息创建Bean实例。 4. **初始化**:容器可能会调用Bean的特定方法(如init方法)进行初始化操作。 联系信息提供了QQ号,这意味着如果在配置或使用过程中遇到问题,可以通过该联系...

    Spring高级应用,Bean讲解

    Bean 的实例化有三种方式,分别为构造器实例化、静态工厂方法实例化和实例工厂方法实例化(其中最常用的是构造器实例化)。 构造器实例化 构造器实例化是指 Spring 容器通过 Bean 对应的类中默认的构造函数来实例...

    spring容器初始化bean和销毁bean之前进行一些操作的方法

    通过实现`postProcessBeforeInitialization()`和`postProcessAfterInitialization()`方法,可以在Bean实例化和初始化之后进行额外操作。 总结起来,Spring提供了多种方式让我们能够在Bean的生命周期中插入自定义...

    Spring bean对象实例化实现过程图解

    这个方法的主要作用是把 beanName 添加到 singletonsCurrentlyInCreation Set 容器中,在这个集合里面的 bean 都是正在实例化的 bean,就是实例化还没做完的 BeanName。然后调到 getObject 方法,完成 bean 的实例化...

    Spring中实例化bean的四种方式详解

    总结,Spring提供了多种实例化和依赖注入Bean的方式,以满足不同场景的需求。setter方法简单易用,适用于大部分情况;构造函数方式在创建Bean时就完成依赖注入,适合对象初始化时就需要依赖的场景;静态工厂和实例...

    xmlbean入门实例

    - 创建Java对象:使用XMLBean生成的类,通过构造函数实例化对象。 - 将XML数据绑定到Java对象:调用setter方法设置对象属性,对应XML元素的值。 - 将Java对象转换为XML:调用对象的`save()`方法,生成XML字符串或...

Global site tag (gtag.js) - Google Analytics