`
unddone8373229
  • 浏览: 28337 次
  • 性别: Icon_minigender_1
  • 来自: 江西
社区版块
存档分类
最新评论

Spring的两种注入方式

阅读更多

带着前面的疑问,不断的学习Spring的知识,然后再回过头去解决那些疑问。

 

现在我们来看看Spring的两种注入方式:

· 设值注入

 设值注入式利用setter的方式为Bean注入依赖关系的方式。

上一节就是使用设值注入为Bean注入依赖关系。

设值注入的关键就是在类中必须存在一个该属性的setter方法,否则是无法实现的。

 

· 构造注入

构造注入是利用构造器来设置依赖关系的方式。

来看范例:

public class Chinese implements Person{
	//斧头
	private Aex aex;
	private Aex aex1;
	public Aex getAex() {
		return aex;
	}
	public void setAex(Aex aex) {
		this.aex = aex;
	}
	
	/**
	 * 默认构造函数
	 */
	public Chinese(){
		
	}
	/**
	 * 构造器注入
	 */
	public Chinese(Aex aex,Aex aex1){
		this.aex=aex;
		this.aex1=aex1;
	}
	/**
	 * 使用斧头
	 */
	public void useAex(String name){
		System.out.println(name+aex.chop());
		System.out.println(name+aex1.chop());
	}
}

 

 

Bean配置:

<beans>
	    <!-- 配置chinese实例,其实现类是org.spring.demo1.Chinese -->
		<bean id="chinese" class="org.spring.demo1.Chinese">
			<constructor-arg ref="stoneAex"></constructor-arg>
			<constructor-arg ref="steelAex"></constructor-arg>
		</bean>
	
		<!-- 配置stoneAxe实例,其实现类是org.spring.demo1.StoneAxe -->
		<bean id="stoneAex" class="org.spring.demo1.StoneAex">
		</bean>
		
		<!-- 配置steelAxe实例,其实现类是org.spring.demo1.SteelAxe -->
		<bean id="steelAex" class="org.spring.demo1.SteelAex">
		</bean>
		
	</beans>

 

使用构造器注入,要注意顺序,构造器注入的顺序对应构造函数中参数的顺序。

 

设值注入较之构造注入的优势:

·采用设置注入,容易让程序员理解,依赖关系更加直观、自然

·多参数的构造器会导致构造器过于臃肿,很难阅读。同时Spring在创建Bean实例的时候,要同时实例化构造器重其依赖的全部实例,这点导致了性能下降。

 

构造注入的优势:

·需要按照一定的顺序决定依赖注入的顺序

·依赖关系无须变化的Bean,构造注入更加有用处

·依赖关系只能在构造器中设定,则只有组建的创建者才能改变组建的依赖关系。

分享到:
评论

相关推荐

    详解Spring 两种注入的方式(Set和构造)实例

    本篇文章主要介绍了Spring 两种注入的方式(Set和构造)实例,Spring框架主要提供了Set注入和构造注入两种依赖注入方式。有兴趣的可以了解一下。

    Spring属性注入

    Spring属性注入:关于Spring的属性注入一共有两种方式,分别为XML方式与注解方式,其中XML方式又分为Set注入与构造方法注入,注解方式分为java注解与Spring注解

    Spring依赖注入的两种方式(根据实例详解)

    主要介绍了Spring依赖注入的两种方式(根据实例详解),非常具有实用价值,需要的朋友可以参考下

    Spring的三种注入方式

    1、接口注入(不推荐) ...  详细解析注入方式  例如:有如下两个类需要注入  第一个类: 1.package org.jia;  2.  3. public class Order {  4. private String orderNum;  5. @Suppres

    spring依赖注入

    依赖注入的两种方式: 1)设值注入 设值注入是指通过setter方法传入被调用者的实例。这种注入方式简单直观,在Spring的依赖注入大量使用。 代码示例如下:

    详解Spring基于xml的两种依赖注入方式

    主要介绍了详解Spring基于xml的两种依赖注入方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    spring(一)–概念和历史/hellospring/IOC创建对象的方式/Spring配置/set注入/c命名和p命名空间注入/bean的作用域

    文章目录一、概念和历史二、hellospring三、IOC创建对象的方式四、Spring配置五、set注入–属性注入六、c命名和p命名空间注入七 、bean的作用域 一、概念和历史 Spring的形成,最初来自Rod Jahnson所著的一本很有...

    Spring3x集成Quartz2x示例工程 两种引入方式

    一个是使用普通JAVA类,通过Spring使用MethodInvokingJobDetailFactoryBean注入,形式调用; 另一个是Spring使用JobDetailBean类,继承QuartzJobBean,重写 protected void executeInternal(JobExecutionContext ...

    spring框架api中文版.zip(spring开发手册)

    有两种格式,一种和jdk的api一样,另一种是PDF格式,pdf部分目录如下: 即Spring框架的概述 1。 介绍Spring框架 1.1。 依赖注入和控制反转 1.2。 模块 1.2.1。 核心容器 1.2.2。 数据访问/集成 1.2.3。 web 1.2.4。 ...

    Spring 入门代码实例

    spring 依赖注入,设值注入和构造注入的两种实现代码。 用JUNIT做测试

    高级开发spring面试题和答案.pdf

    spring 三种注入(就是从spring容器中将bean放入对象属性值中) Spring下描述依赖关系@Resource, @Autowired和@Inject的区别与联系 Spring中BeanFactory和ApplicationContext的区别 谈谈Spring IOC的理解,原理与...

    springboot整合spring-kafka kafkaTemplate

    本项目里面简单写了单挑信息、批量信息的web接口测试消息发送,并且注入了两个bean,实现KafkaListener两种不同模式{containerFactory="batchFactory"},{containerFactory = "batchFactoryOff"}。

    spring.doc

    4.2.2 AOP实现的两种模式 78 4.2.2.1 xml形式 78 XML形式拓展: 81 异常通知处理例子: 91 不用spring异常通知,另一种处理异常 96 4.2.2.2Aop注解形式(了解) 99 注解注入拓展: 103 5 Spring数据库 106 5.1 ...

    25个经典的Spring面试问答

    配置与注解:理解Spring的XML配置和注解配置,并能够在这两种配置方式中进行选择。 Spring AOP与AspectJ:理解Spring AOP的概念,以及如何使用AspectJ实现AOP。 Spring与其它技术集成:了解Spring与其它技术的集成,...

    Spring-Security-Demo

    SpringSecurity,这是一种基于Spring AOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入...

    开源框架 Spring Gossip

    &lt;br&gt;AOP 入门 AOP 的观念与术语都不是很直觉,可以先从代理机制(Spring 实现 AOP 的一种方式)来看看实际的例子,从而了解 AOP 的观念与各种术语。 从代理机制初探 AOP 动态代理 &lt;br&gt;AOP 观念与...

    千锋JavaEE精讲之Spring框架实战教程

    同时讲解了xml和注解两种方式使用Spring的示例。  通过Spring的入门程序介绍了Spring的IoC和DI的概念,介绍了Spring的基本模块。详细介绍了对象创建的细节和依赖注入的几种方式;介绍了如何使用注解完成Spring...

    java视频教程:spring框架精讲附加实战项目练习

    同时讲解了xml和注解两种方式使用Spring的示例。通过Spring的入门程序介绍了Spring的 IoC 和 DI 的概念,介绍了Spring的基本模块。详细介绍了对象创建的细节和依赖注入的几种方式;介绍了如何使用注解完成Spring的...

    spring+SpringMVC+MyBatis

    在这里你有两种方案。1 配置文件的方式 方案2 利用注解的方式** 2. **在业务逻辑逻辑层 创建对象使用spring框架。spring中分为好多模块利用bean管理。在spring框架中你可以使用IOc三种方案 1 配置文件的注入 2 注解...

    spring配置全书.doc

    Spring Framework总是不断的改变着Java企业开发的方向,它用一种松耦合的方式来配置和组装应用程序对象和业务对象,比以往的Java企业开发来的更加简洁。一旦你开发了基于Spring的应用程序,在Spring上下文配置的那些...

Global site tag (gtag.js) - Google Analytics