`

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

阅读更多

Spring的实例化Bean有三种方式:

 使用类构造器直接实例化

 使用静态工厂的方法实例化

 使用实例工厂方法实例化

 

三种方式对应的配置如下

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.         xmlns:context="http://www.springframework.org/schema/context"  
  5.         xmlns:tx="http://www.springframework.org/schema/tx"  
  6.         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   
  7.                 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd   
  8.                 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">  
  9.         <!-- 使用类构造器直接实例化 -->     
  10.         <bean id="userBean1" class="com.szy.spring.implbean.UserBean" />  
  11.         <!-- 使用静态工厂的方法实例化 -->  
  12.         <bean id="userBean2" class="com.szy.spring.factory.BeanFactory" factory-method="UserBeanService" />  
  13.         <!-- 使用实例工厂方法实例化 -->  
  14.         <bean id="factory" class="com.szy.spring.factory.BeanFactory" />  
  15.         <bean id="userBean3" factory-bean="factory" factory-method="getUserBeanService" />  
  16. </beans>  
<?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"
		xmlns:tx="http://www.springframework.org/schema/tx"
		xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
				http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
				http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
		<!-- 使用类构造器直接实例化 -->	
		<bean id="userBean1" class="com.szy.spring.implbean.UserBean" />
		<!-- 使用静态工厂的方法实例化 -->
		<bean id="userBean2" class="com.szy.spring.factory.BeanFactory" factory-method="UserBeanService" />
		<!-- 使用实例工厂方法实例化 -->
		<bean id="factory" class="com.szy.spring.factory.BeanFactory" />
		<bean id="userBean3" factory-bean="factory" factory-method="getUserBeanService" />
</beans>

 

 

其中BeanFactory类的代码如下

Java代码 复制代码
  1. package com.szy.spring.factory;   
  2.   
  3. import com.szy.spring.implbean.UserBean;   
  4. import com.szy.spring.interfacebean.PersonBean;   
  5.   
  6. public class BeanFactory   
  7. {   
  8.     //使用静态工厂的方法实例化使用   
  9.     public static PersonBean UserBeanService()   
  10.     {   
  11.         return new UserBean();   
  12.     }   
  13.        
  14.     public PersonBean getUserBeanService()   
  15.     {   
  16.         return new UserBean();   
  17.     }   
  18. }  
package com.szy.spring.factory;

import com.szy.spring.implbean.UserBean;
import com.szy.spring.interfacebean.PersonBean;

public class BeanFactory
{
	//使用静态工厂的方法实例化使用
	public static PersonBean UserBeanService()
	{
		return new UserBean();
	}
	
	public PersonBean getUserBeanService()
	{
		return new UserBean();
	}
}

 

在这三种方式中我们最常用的还是第一种。

分享到:
评论

相关推荐

    SpingIOC注入实例化bean

    2. **实例化bean** Spring容器提供多种实例化bean的方式: - **默认实例化**:如果bean没有指定构造函数,Spring会使用默认无参构造函数创建bean。 - **构造函数注入**:可以通过指定构造函数参数,Spring会调用...

    sping-boot-shiro-jwt-redis-refreshtoken.zip

    标题 "sping-boot-shiro-jwt-redis-refreshtoken.zip" 暗示这是一个关于Spring Boot、Shiro、JWT(JSON Web Token)以及Redis整合的项目,用于实现权限管理和安全认证,特别是涉及到Token的自动刷新功能。...

    sping3 spring-beans 类图 chm

    sping3 spring-beans 类图 chm

    sping-aop-3.jar

    sping-aop-3.jar 最新的第一次上传东西

    sping-boot-shiro-jwt-redis.zip

    JWT是一种开放标准(RFC 7519),定义了一种紧凑的、自包含的方式来安全地在各方之间传输信息作为一个 JSON 对象。这个信息可以被验证和信任,因为它是数字签名的。在Spring Boot中,我们可以使用jjwt库来生成和验证...

    sping-cloud-oauth2-jwt-demo.zip

    SpringCloud中oauth2最为简单的demo,内附帮助文档help.txt。 5种oauth的授权方式的使用方法:authorization_code、password、implicit、client_credentials、refresh_token 启动可以直接验证

    Sping视频2 Sping视频2Sping视频2Sping视频2

    Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2

    Sping翻转控制器

    ### Sping翻转控制器知识点详解 #### 一、Spring IoC 容器概述 ##### 1.1 控制反转(Inversion of Control, IoC)原理 - **定义**:控制反转是一种设计模式,用于降低代码之间的耦合度。在Spring框架中,IoC容器...

    java unix sping ajax struts hibernate 学习笔记

    这篇学习笔记涵盖了广泛的Java和JavaEE相关技术,包括Unix、Spring、Struts、Ajax、Hibernate等核心组件。让我们深入探讨一下这些技术。 首先,Unix是一个强大的操作系统,是许多服务器和开发环境的基础。在"Unix...

    Sping3.0--API

    Spring框架的基础API文档,帮助学习理解Spring框架,web开发。

    sping学习压缩文件

    例如,我们可以使用`@Autowired`注解自动装配bean,或者在XML配置文件中声明bean及其依赖关系。 其次,Spring的AOP模块允许我们在不修改源代码的情况下,对程序进行横切关注点(如日志、事务管理)的处理。通过定义...

    sping-cloud-advance

    SpringBoot统一异常处理及实战源码

    eclipse + struts2+sping + bootstrap+juqery-ui整合源码

    【标题】"eclipse + struts2+sping + bootstrap+juqery-ui整合源码"涉及的关键技术栈包括Eclipse开发环境、Struts2框架、Spring框架、Bootstrap前端库以及jQuery UI组件库。这些技术在Java Web开发中占据着重要地位...

    [新手-图文]整合ssm框架-从mybatis到spring-mybatis再到ssm-sping-mybatis-spingmvc

    #### 三、整合Spring ##### 3.1 创建spring-mybatis.xml 配置Spring容器,使用`MapperScannerConfigurer`扫描DAO接口并将其转换为Bean。 **示例代码**: ```xml &lt;!-- spring-mybatis.xml --&gt; xmlns:xsi=...

    Flex4 spring整合实例

    4. **数据序列化与反序列化**:AMF是一种高效的二进制格式,用于在Flex和Spring之间传输数据。需要确保Java对象和Flex对象之间有对应的映射关系。 5. **测试与调试**:通过发送Flex客户端的请求并观察Spring服务器...

    关于spring boot中几种注入方法的一些个人看法

    在使用 @Autowired 之前,我们对一个 bean 配置起属性时,是使用 属性名" value=" 属性值"/&gt; 的方式来配置,比较繁琐,而且代码比较多。在 Spring 2.5 引入了 @Autowired 注释,我们平常直接引用的时候很少注意这些...

    SSH学习笔记3 SSH学习笔记3

    SSH学习笔记3主要聚焦于三个Java企业级开发框架——STRUTS、SPRING和HIBERNATE的集成与应用。这三个框架是Java后端开发中非常重要的组件,它们各自负责不同的层面,共同构建了一个强大的MVC(Model-View-Controller...

Global site tag (gtag.js) - Google Analytics