带着前面的疑问,不断的学习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属性注入:关于Spring的属性注入一共有两种方式,分别为XML方式与注解方式,其中XML方式又分为Set注入与构造方法注入,注解方式分为java注解与Spring注解
主要介绍了Spring依赖注入的两种方式(根据实例详解),非常具有实用价值,需要的朋友可以参考下
1、接口注入(不推荐) ... 详细解析注入方式 例如:有如下两个类需要注入 第一个类: 1.package org.jia; 2. 3. public class Order { 4. private String orderNum; 5. @Suppres
依赖注入的两种方式: 1)设值注入 设值注入是指通过setter方法传入被调用者的实例。这种注入方式简单直观,在Spring的依赖注入大量使用。 代码示例如下:
主要介绍了详解Spring基于xml的两种依赖注入方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
文章目录一、概念和历史二、hellospring三、IOC创建对象的方式四、Spring配置五、set注入–属性注入六、c命名和p命名空间注入七 、bean的作用域 一、概念和历史 Spring的形成,最初来自Rod Jahnson所著的一本很有...
一个是使用普通JAVA类,通过Spring使用MethodInvokingJobDetailFactoryBean注入,形式调用; 另一个是Spring使用JobDetailBean类,继承QuartzJobBean,重写 protected void executeInternal(JobExecutionContext ...
有两种格式,一种和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 依赖注入,设值注入和构造注入的两种实现代码。 用JUNIT做测试
spring 三种注入(就是从spring容器中将bean放入对象属性值中) Spring下描述依赖关系@Resource, @Autowired和@Inject的区别与联系 Spring中BeanFactory和ApplicationContext的区别 谈谈Spring IOC的理解,原理与...
本项目里面简单写了单挑信息、批量信息的web接口测试消息发送,并且注入了两个bean,实现KafkaListener两种不同模式{containerFactory="batchFactory"},{containerFactory = "batchFactoryOff"}。
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 ...
配置与注解:理解Spring的XML配置和注解配置,并能够在这两种配置方式中进行选择。 Spring AOP与AspectJ:理解Spring AOP的概念,以及如何使用AspectJ实现AOP。 Spring与其它技术集成:了解Spring与其它技术的集成,...
SpringSecurity,这是一种基于Spring AOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入...
<br>AOP 入门 AOP 的观念与术语都不是很直觉,可以先从代理机制(Spring 实现 AOP 的一种方式)来看看实际的例子,从而了解 AOP 的观念与各种术语。 从代理机制初探 AOP 动态代理 <br>AOP 观念与...
同时讲解了xml和注解两种方式使用Spring的示例。 通过Spring的入门程序介绍了Spring的IoC和DI的概念,介绍了Spring的基本模块。详细介绍了对象创建的细节和依赖注入的几种方式;介绍了如何使用注解完成Spring...
同时讲解了xml和注解两种方式使用Spring的示例。通过Spring的入门程序介绍了Spring的 IoC 和 DI 的概念,介绍了Spring的基本模块。详细介绍了对象创建的细节和依赖注入的几种方式;介绍了如何使用注解完成Spring的...
在这里你有两种方案。1 配置文件的方式 方案2 利用注解的方式** 2. **在业务逻辑逻辑层 创建对象使用spring框架。spring中分为好多模块利用bean管理。在spring框架中你可以使用IOc三种方案 1 配置文件的注入 2 注解...
Spring Framework总是不断的改变着Java企业开发的方向,它用一种松耦合的方式来配置和组装应用程序对象和业务对象,比以往的Java企业开发来的更加简洁。一旦你开发了基于Spring的应用程序,在Spring上下文配置的那些...