时间:2021-05-19
依赖注入是指对象之间关系的控制权由应用代码中转到外部容器。Spring框架主要提供了Set注入和构造注入两种依赖注入方式。
1:Set注入指的就是在接受注入的类中定义一个要被注入的类型的一个set方法,并在参数中定义需要注入的元素。Set注入式一种装配Bean属性的直接方法,但Set注入的一个缺点就是它假设了所有的可变属性都可以通过set方法访问到,无法清晰地表示哪些属性是必须的,哪些属性是可选的。
2:构造注入是在接收注入的类中定义一个构造方法,并在构造方法中定义需要注入的参数。构造注入方式的优势是通过构造方法来强制依赖关系。
下面介绍一下两种方式的用法:
一:在Myeclipse中(笔者使用的是Myeclipse10版本)新建一个项目(Java project或者web project都可)
二:右键项目 - MyEclipse - Add Spring Capabilities(添加Spring支持),选择3.0版本并添加引用核心类库,点击下一步。
三:选择新创建一个spring bean 配置文件放到项目src目录下。
四:点击下一步,指定hibernate 配置页,直接默认,点击完成即可。
五:新建类 HelloWorld.Java
package com.xiami.spring; public class HelloWorld { private String str; /** * 默认构造方法 */ public HelloWorld() { } /** * 用来进行构造注入的构造方法 * * @param str */ public HelloWorld(String str) { this.str = str; } /** * 用来进行Set注入的方法 * @param str */ public void setStr(String str) { this.str = str; } /** * 输出字符串的方法 */ public void sayHello() { System.out.println(str); } }六:新建测试类Test.java
package com.xiami.spring; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //载入spring配置文件 BeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml")); HelloWorld helloWorld = (HelloWorld) bFactory.getBean("helloService"); helloWorld.sayHello(); } }七:打开applicationContext.xml文件,进行添加bean配置
以下是两种方式添加bean:
1:采用Set注入方式的Bean类的配置
右击applicationContext.xml的编辑界面 - Spring - new bean 打开Bean向导窗口,填写Bean Id(自定义命名和Test.java中getBean("???")对应。Bean class 选择要注入的HelloWorld类。点击Properties属性选项卡,给该bean新建一个属性。
八:在属性向导窗口填写 Name 对应HelloWorld.java中的属性名称,Spring Type 选择value,type选择String,Value 随便填值。finish 既可。
九:保存applicationContext.xml, 添加bean后,配置文件多了红色标记的部分,读者可以运行Test.java。测试一下。发现hello world字符串已经注入到了str变量上。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://.xiami.spring.HelloWorld" abstract="false" lazy-init="default" autowire="default"> <constructor-arg> <value type="java.lang.String">构造方法注入方式</value> </constructor-arg> </bean> --> </beans>2:采用构造注入方式的Bean类的配置
在以上Set方式的Bean Wizard(Bean 向导)窗口,不选择Properties选项卡,变为Constructor Args选项卡。并Add 新增一个构造参数。Index和Java Class 不用填写。
十:在增加构造方式bean的时候,之前第一个得先注释或者删除,不允许有多个id相同的bean。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
自动注入和@Autowire@Autowire不属于自动注入!注入方式(重要)在Spring官网上(文档),定义了在Spring中的注入方式一共有两种:set方
Spring的依赖注入Spring主要支持两种依赖注入方式,分别是属性注入和构造函数注入。同时也支持工厂方法注入方式。属性注入属性注入的方式非常简单,即指通过s
一、spring依赖注入使用方式@Autowired是spring框架提供的实现依赖注入的注解,主要支持在set方法,field,构造函数中完成bean注入,注
在spring中bean的属性注入有两种构造器注入Setter方法注入集合属性的注入在spring中对于集合属性,可以使用专门的标签来完成注入.例如:lists
spring框架为我们提供了三种注入方式,分别是set注入,构造方法注入,接口注入。今天就和大家一起来学习一下依赖注入的基本概念依赖注入(DependecyIn