Spring 实例化bean的三种方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 实例化bean的三种方式相关的知识,希望对你有一定的参考价值。

第一种方法:直接配置Bean

Xml代码  技术分享
  1. <bena id="所需要实例化的一个实例名称" class="包名.类名"/>  

 

例如:

配置文件中的bean.XML代码:

 

Xml代码  技术分享
  1. <bean id="userA" class="com.test.User"/>  
Java代码  技术分享
  1. package com.test  
  2.   
  3. public class User{  
  4.     public void test(){  
  5.         System.out.println("HelloWorld");  
  6.     }  
  7. }  

 

第二种方法:简单工厂创建Bean

Xml代码  技术分享
  1. <bena id="所需要实例化的一个实例名称" class="包名.类名" factory-mathod="该类创建实例的方法名"/>  

 

通过使用简单工厂的静态方法进行创建:

例如:

Xml代码  技术分享
  1. <bean id="userA" class="com.test.MyFactory" factory-mathod="getInstance"/>  

 

Java代码  技术分享
  1. package com.test  
  2.   
  3. public class MyFactory{  
  4.      public static User getInstance(){  
  5.            return new User();  
  6.      }  
  7. }  

 

第三种方法:抽象工厂方法创建Bean

Xml代码  技术分享
  1. <bena id="所需要实例化的一个工厂实例名称" class="包名.工厂类类名"/>  
  2. <bean id="所需要创建的实例名" factory-bean="用来创建实例的工厂实例名" factory-mathod="工厂实例中用于创建实例的方法名"/>  

 

这种方法要先创建工厂实例,再通过调用工厂实例的方法来创建所需要的实例。

例如:

Xml代码  技术分享
  1. <bean id="userFactory" class="com.test.CreateFactory"/>  
  2. <bean id="userA" factory-bean="userFactory" factory-mathod="getInstance"/>  

 

Java代码  技术分享
  1. package com.test  
  2.   
  3. public class CreateFactory{  
  4.      public User getIntance(){  
  5.            return new User();  
  6.      }  
  7. }  

 

在大多数情况下我们用的都是第一种方式,另外要注意的是:如果实例名存在特殊字符("/"等字符),那么就不能用id来标识实例名,

而要用name属性来标识。

以上是关于Spring 实例化bean的三种方式的主要内容,如果未能解决你的问题,请参考以下文章

Spring bean管理器 bean实例化的三种方式

Spring 实例化bean的三种方式

Spring实例化Bean的三种方式及Bean的类型

spring的三种实例化方式

Spring -- Spring配置文件详解(Bean实例化的三种方式IoC(控制反转) 与 DI(依赖注入)依赖注入详解)

Spring实例化bean的三种方法