`

三 实例化bean的方法

 
阅读更多
三 实例化bean的方法 
1接口
package cn.itcast.service;

public interface PersonService {

	/* (non-Javadoc)
	 * @see cn.itcast.service.impl.PersonService#save()
	 */
	public void save();

}
实现类
package cn.itcast.service.impl;

import cn.itcast.service.PersonService;



public class PersonServiceBean implements PersonService {

	/* (non-Javadoc)
	 * @see cn.itcast.service.impl.PersonService#save()
	 */
	/* (non-Javadoc)
	 * @see cn.itcast.service.impl.PersonService#save()
	 */
	public void save(){
		System.out.println("我是save()方法");
	}
}

静态工厂类

package cn.itcast.service.impl;
/**
 * 静态工厂方法实例化bean
 * @author Administrator
 *
 */
public class PersonServiceBeanFactory {
   public static PersonServiceBean create(){
    	return new PersonServiceBean();
    }
}

实例工厂方法实例化
package cn.itcast.service.impl;

public class PersonServiceBeanNotStaticFactory {
   public PersonServiceBean create(){
	   return new PersonServiceBean();
   }
}


请看配置文件配置
<?xml version="1.0" encoding="UTF-8"?>
<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="personservice" class="cn.itcast.service.impl.PersonServiceBean"></bean>
     
     <!-- 静态工厂的实例化 方式同样是建一个接口 建一个接口实现类 同时建一个工厂类 然后把工厂类给配置上 并且配置其创建实例的方法 -->
     <bean id="personservicefactory1" class="cn.itcast.service.impl.PersonServiceBeanFactory" factory-method="create"></bean>
 
     <!-- 实例工厂方法实例化 同样是建一个接口 一个实现类 一个工厂类 不过工厂创建的实例的方法不是静态的 并且把这个方法配置-->
     <bean id="notstaticfactory" class="cn.itcast.service.impl.PersonServiceBeanNotStaticFactory"></bean>
     <bean id="personservicefactory2" factory-bean="notstaticfactory" factory-method="create"></bean>
 </beans>


调用
package junit.test;


import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itcast.service.PersonService;


public class SpringTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@Test public void instanceSpring(){
		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		/**
		 * 方式一类构造器实例化方法获取实例 类构造器就是接口实现类缺省的默认的构造方法
		 */
		//PersonService personService = (PersonService)ctx.getBean("personservice");
	    //personService.save();
		
		/**
		 * 方式二 静态工厂方法实例化
		 */
		//PersonService personService = (PersonService)ctx.getBean("personservicefactory1");
		//personService.save();
		
		
		/**
		 * 方式三 实例工厂方法实例化
		 */
		PersonService personService = (PersonService)ctx.getBean("personservicefactory2");
		personService.save();		
	}
}

好了 就讲到这吧
完毕 end!

 

分享到:
评论

相关推荐

    Spring实例化Bean顺序

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

    Spring的三种实例化Bean的方式

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

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

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

    Spring 实例化Bean的三种方式

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

    SpingIOC注入实例化bean

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

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

    浅谈Spring IOC实例化Bean的三个方法 Spring IOC(Inversion of Control,控制反转)是Spring Framework中的一种核心机制,用于管理Bean的生命周期。实例化Bean是IOC的核心步骤之一,本文将详细讲解Spring IOC实例...

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

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

    多线程实例化bean,创建多线程时可注入

    多线程实例化bean,创建多线程时可注入

    Spring项目bean实例化代码

    本篇文章将深入探讨Spring项目中Bean的实例化过程,包括三种主要的bean实例化方式:构造方法、静态工厂和实例工厂。 首先,让我们了解什么是Bean。在Spring中,Bean是应用程序中的业务对象,它们由Spring容器负责...

    Spring Bean实例化实现过程解析

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

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

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

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

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

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

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

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

    本篇文章将详细探讨Spring实例化bean的三种主要方式,并提供相关的代码示例。这些方式包括使用类构造器、静态工厂方法以及实例化工厂方法。 1. **使用类构造器实现实例化** 这是最基础的实例化方式,通过指定`...

    Bean开发实例之三实体Bean开发实例

    Home接口提供了创建、查找和删除实体Bean实例的方法。 4. **实体Bean示例**:假设有一个名为`Student`的数据表,包含`STUID`、`STUNAME`和`LOCKERID`三个字段。为了创建一个对应于该数据表的实体Bean,首先需要...

    BeanFactory的实例化

    Spring 3 中提供了三种实例化 BeanFactory 的方法,下面将详细介绍这三种方法。 第一种方法:从文件系统资源实例化 BeanFactory 在 Spring 项目中,可以从文件系统资源实例化 BeanFactory,这种方法可以使得 ...

    Spring Bean创建初始化流程.docx

    进入`DefaultListableBeanFactory`的`preInstantiateSingletons()`方法,这个方法遍历所有的Bean定义,对于单例模式的Bean,进行实例化。 5. **获取Bean实例**: 在预实例化过程中,`getBean(beanName)`被调用,...

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

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

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

    在Spring框架中,Bean的实例化是通过Spring容器完成的,它提供了多种实例化方式,以满足不同场景的需求。 首先,最常见的Bean实例化方式是**构造器实例化**。在Spring配置文件中,我们通过`&lt;bean&gt;`标签指定Bean的`...

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

    在 Spring 框架中,Bean 的实例化是通过 BeanFactory 中的 getBean 方法来实现的,该方法根据 bean 的名字、Class 类型和参数等来得到 bean 实例。 在了解 Bean 的实例化过程之前,我们需要了解 Spring 框架中 IoC ...

Global site tag (gtag.js) - Google Analytics