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的三种主要方式:构造器注入、静态工厂方法注入以及实例工厂方法注入。 #### 1. 构造器注入(Constructor Injection) 构造器注入是指通过调用Bean类的构造器来创建Bean实例。...
- **工厂方法**:可以定义一个静态或非静态工厂方法,Spring调用这个方法来实例化bean。 3. **依赖注入(DI)** Spring的依赖注入允许bean之间通过接口而非具体实现进行耦合,提高了代码的可测试性和可维护性。...
Spring IOC实例化Bean有三种方法:构造器实例化、静态工厂方法实例化和实例工厂方法实例化。每种方法都有其优缺,选择哪种方法取决于实际需求。 在实际开发中,我们可以根据需要选择合适的实例化方法。例如,如果...
**构造方法实例化**是最常见的Bean创建方式。在Spring配置文件中,可以通过`<bean>`标签的`constructor-arg`子标签来指定构造函数参数,Spring会根据这些参数调用相应的构造函数来创建Bean实例。例如: ```xml ...
静态工厂方法实例化是指通过静态工厂方法来实例化 Bean。这意味着,我们可以通过静态工厂方法来创建 Bean 实例,而不是通过容器来实例化 Bean。 例如,在 com.itheima.instance.static_factory 包中,我们定义了一...
如果一个BeanA依赖于另一个BeanB,同时BeanB也依赖于BeanA,那么Spring在处理依赖关系时可能会陷入循环引用,导致两个Bean都实例化两次。 3. **@PostConstruct与初始化回调**:Spring允许我们在Bean初始化后执行...
这三种方式分别是:构造方法实例化、静态工厂方法实例化和实例工厂方法实例化。我们将深入探讨构造方法实例化这一主题。 首先,为了开始我们的实验,我们需要设置一个基本的开发环境。这包括创建一个Maven项目,并...
在实例化bean时,Spring首先会调用Bean的默认构造方法(当然也可以是指定的其它构造方法),生成bean实例。例如,在我们的代码示例中,我们定义了一个Employee类,它实现了InitializingBean、DisposableBean和...
本文将详细探讨Spring中bean实例化的三种主要方式:普通构造方法创建、静态工厂创建和实例工厂创建。 1. 普通构造方法创建: 这是最常见、最直观的方式,适用于大部分情况。在Spring配置文件中,我们通过`<bean>`...
在Spring框架中,实例化bean是核心功能之一,它涉及到对象的创建、初始化和管理。本篇文章将详细探讨Spring实例化bean的三...希望本文内容对理解和使用Spring实例化bean有所帮助,如果有任何疑问或建议,欢迎交流讨论。
首先,最常见的Bean实例化方式是**构造器实例化**。在Spring配置文件中,我们通过`<bean>`标签指定Bean的`id`和`class`属性,`class`属性指定了Bean对应的类路径。例如,在`beans1.xml`中定义的`bean1`就是通过构造...
Bean 的生命周期流程包括实例化、依赖注入、初始化、使用、销毁等阶段。在 Bean 的生命周期中,我们需要了解 Bean 的生命周期案例,以便更好地理解 Bean 的生命周期。 本文主要研究了 Spring 框架中 Bean 的实例化...
在 Spring 项目中,可以从文件系统资源实例化 BeanFactory,这种方法可以使得 BeanFactory 从外部文件中加载 Bean 的定义。下面是一个简单的示例代码: ```java Resource res = new FileSystemResource("src\\...
Spring工厂方法创建(实例化)bean实例代码 Spring框架中提供了多种方式来创建bean实例,包括通过构造器、静态工厂方法和实例工厂方法等。这种方式可以让开发者更好地控制bean的创建过程,实现更多的自定义需求。 ...
3. **实例化Bean**:容器根据配置信息创建Bean实例。 4. **初始化**:容器可能会调用Bean的特定方法(如init方法)进行初始化操作。 联系信息提供了QQ号,这意味着如果在配置或使用过程中遇到问题,可以通过该联系...
Bean 的实例化有三种方式,分别为构造器实例化、静态工厂方法实例化和实例工厂方法实例化(其中最常用的是构造器实例化)。 构造器实例化 构造器实例化是指 Spring 容器通过 Bean 对应的类中默认的构造函数来实例...
通过实现`postProcessBeforeInitialization()`和`postProcessAfterInitialization()`方法,可以在Bean实例化和初始化之后进行额外操作。 总结起来,Spring提供了多种方式让我们能够在Bean的生命周期中插入自定义...
这个方法的主要作用是把 beanName 添加到 singletonsCurrentlyInCreation Set 容器中,在这个集合里面的 bean 都是正在实例化的 bean,就是实例化还没做完的 BeanName。然后调到 getObject 方法,完成 bean 的实例化...
总结,Spring提供了多种实例化和依赖注入Bean的方式,以满足不同场景的需求。setter方法简单易用,适用于大部分情况;构造函数方式在创建Bean时就完成依赖注入,适合对象初始化时就需要依赖的场景;静态工厂和实例...
- 创建Java对象:使用XMLBean生成的类,通过构造函数实例化对象。 - 将XML数据绑定到Java对象:调用setter方法设置对象属性,对应XML元素的值。 - 将Java对象转换为XML:调用对象的`save()`方法,生成XML字符串或...