`

Spring--三种实例化Bean的方式

 
阅读更多
1、使用类构造器实例化
这种实例化的方式可能在我们平时的开发中用到的是最多的,因为在xml文件中配置简单并且也不需要额外的工厂类来实现。
<bean id=“orderService" class="cn.itcast.OrderServiceBean"/>

id是对象的名称,class是要实例化的类,然后再通过正常的方式进调用实例化的类即可,比如:
public void instanceSpring(){  
                //加载spring配置文件  
        ApplicationContext ac = new ClassPathXmlApplicationContext(  
                new String[]{  
                        "/conf/applicationContext.xml"  
                });  
        //调用getBean方法取得被实例化的对象。  
        OrderServiceBean psb = (OrderServiceBean) ac.getBean("orderService");  
          
        psb.save();  
}  


采用这种实例化方式要注意的是:要实例化的类中如果有构造器的话,一定要有一个无参的构造器。

2、使用静态工厂方法实例化:
根据这个实例化方法的名称就可以知道要想通过这种方式进行实例化就要具备两个条件:(一)、要有工厂类及其工厂方法;(二)、工厂方法是静态的。OK,知道这两点就好办了,首先创建工程类及其静态方法:
public class OrderFactory {
	public static OrderServiceBean createOrder(){
		return new OrderServiceBean();
	}
}

然后再去配置spring配置文件,配置的方法和上面有点不同,这里也是关键所在
<bean id="personService" class="cn.itcast.service.OrderFactory" factory-method="createOrder"/>

id是实例化的对象的名称,class是工厂类,也就实现实例化类的静态方法所属的类,factory-method是实现实例化类的静态方法。

3、使用实例工厂方法实例化:
这个方法和上面的方法不同之处在与使用该实例化方式工厂方法不需要是静态的,但是在spring的配置文件中需要配置更多的内容,,首先创建工厂类及工厂方法:
public class OrderFactory {
	public OrderServiceBean createOrder(){
		return new OrderServiceBean();
	}
}

然后再去配置spring配置文件,配置的方法和上面有点不同,这里也是关键所在
<bean id="personServiceFactory" class="cn.itcast.service.OrderFactory"/>
<bean id="personService" factory-bean="personServiceFactory" factory-method="createOrder"/>

这里需要配置两个bean,第一个bean使用的构造器方法实例化工厂类,第二个bean中的id是实例化对象的名称,factory-bean对应的被实例化的工厂类的对象名称,也就是第一个bean的id,factory-method是非静态工厂方法。
分享到:
评论

相关推荐

    Spring的三种实例化Bean的方式

    Spring的三种实例化Bean的方式各有优势:XML配置适合大型项目,具有良好的可读性和分离性;注解配置简化了配置,提高了代码的可维护性;Java配置则提供了更大的灵活性,方便实现复杂的配置逻辑。开发者可以根据项目...

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

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

    Spring实例化Bean顺序

    这里,我们主要探讨的是Spring如何通过其IoC(Inversion of Control)容器来实例化Bean,并理解其背后的逻辑。 首先,我们要知道Spring IoC容器是通过XML配置文件、注解或Java配置类来管理Bean的生命周期。Bean的...

    Spring 实例化Bean的三种方式

    ### Spring 实例化Bean的三种方式详解 在Java企业级应用开发中,Spring框架因其强大的功能和灵活性,成为了处理依赖注入、事务管理等任务的首选工具。其中,Bean的实例化是Spring框架的核心功能之一,它支持多种...

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

    在本文档中,我们关注的是Spring如何通过三种不同的方式实例化Bean。这三种方式分别是:构造方法实例化、静态工厂方法实例化和实例工厂方法实例化。我们将深入探讨构造方法实例化这一主题。 首先,为了开始我们的...

    Spring--2.Spring 中的 Bean 配置-4

    在Spring框架中,Bean配置是核心概念之一,它关乎到对象的创建、初始化、装配以及管理。本节我们将深入探讨Spring中的Bean配置,主要关注如何通过XML、注解以及Java配置方式来管理Bean。 首先,让我们从XML配置说起...

    spring-context-3.2.0 spring-core-3.2.0 等齐全的Spring jar包

    5. **spring-beans-3.2.0.RELEASE.jar**:这个模块处理bean的定义、实例化、配置和管理。它包含了bean工厂,是实现IoC和DI的基础。 6. **spring-test-3.2.0.RELEASE.jar**:测试模块提供了对JUnit和TestNG的支持,...

    Spring框架(spring-framework-5.2.6.RELEASE)的jar包

    Beans模块则实现了bean的定义、实例化、装配和管理。 2. **Data Access/Integration**:这个模块支持数据访问,包括JDBC、ORM(Object-Relational Mapping)、OXM(Object-XML Mapping)和JMS(Java Message ...

    spring-beans-3.0.xsd

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

    Spring--2.Spring 中的 Bean 配置-2-1

    以上是Spring中基于XML的Bean配置的基本知识点,通过这些配置,我们可以精细控制Spring容器如何管理和实例化Bean,以及它们之间的依赖关系。随着Spring的发展,Java配置和注解配置逐渐成为主流,它们提供了更简洁、...

    Spring--2.Spring 中的 Bean 配置-2-2

    在Spring框架中,Bean配置是核心概念之一,它关乎到对象的创建、初始化、依赖注入以及生命周期管理。在"Spring--2.Spring 中的 Bean 配置-2-2"这个主题下,我们将深入探讨如何在Spring中进行Bean的详细配置。 1. **...

    spring-aop-3.0.xsd spring-beans-3.0 spring-context-3.0.xsd spring-mvc-3.1.xsd

    `spring-beans-3.0.xsd` 文件定义了 Spring 容器如何读取并解析 XML 配置文件,来实例化、装配和管理 beans。在这个文件中,你可以定义 bean 的 id、class、属性、依赖注入等。通过版本号 3.0,我们可以看出这是针对...

    Spring源码编译缺少的两个包:spring-cglib-repack-3.2.0.jar和spring-objenesis-repack-2.2.jar

    Objenesis是一个Java库,用于实例化未通过构造函数创建的对象,即使这些对象有默认构造器。在某些场景下,如Spring的测试或代理创建中,可能需要在不调用构造函数的情况下创建对象。Objenesis通过利用Java的反射和...

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

    Spring 框架系列(8)- Spring IOC 实现原理详解之 Bean 实例化(生命周期、循环依赖等) 本文主要研究 Spring 框架中 Bean 的实例化过程,包括 Bean 的生命周期和循环依赖问题的解决方案。在 Spring 框架中,Bean ...

    spring-mybatis整合jar包,spring-mybatis整合jar包

    `spring-beans`处理bean的定义和实例化。 3. **mybatis-3.2.7.jar**:Mybatis是轻量级的ORM框架,它简化了SQL操作,允许开发者直接编写SQL语句并将其映射到Java对象上。在这个整合包中,Mybatis作为数据访问层的...

    Spring--2.Spring 中的 Bean 配置-3

    在传统的XML配置中,`beans`元素是配置文件的根元素,它包含了多个`bean`元素,每个`bean`元素代表一个实例化和管理的对象。例如: ```xml &lt;bean id="exampleBean" class="com.example.ExampleBean"/&gt; ``` 在这...

    spring-test-3.2.0.RELEASE.jar

    通过`@MockBean`注解,可以在Spring容器中注入一个Mock对象,而`@SpyBean`则可以创建一个部分模拟的Bean。同时,`when()`和`thenReturn()`等方法可以定义Mock对象的行为,实现精确的预期控制。 3. **Web应用测试:*...

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

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

    实例化Spring bean的两种工厂方法

    实例化Spring Bean的工厂方法是实现定制化对象创建的一种方式,提供了比直接声明Bean更高的灵活性。开发者可以根据需求选择实例工厂方法或静态工厂方法,以满足特定的应用场景。在实际项目中,应根据实际情况权衡...

    spring-quartz定时任务小实例

    8. **cron表达式**:Cron表达式是Quartz中定义触发器时间规则的一种方式,它由7个子表达式组成,分别代表秒、分、小时、日、月、周和年。通过不同的组合,你可以定义出复杂的时间规律。 9. **监控与管理**:Quartz...

Global site tag (gtag.js) - Google Analytics