文档章节

Bean注入的两种方式

javaART
 javaART
发布于 2017/05/28 00:31
字数 579
阅读 1
收藏 0

Bean注入的方式 (一)一种是在XML中配置,此时分别有属性注入、构造函数注入和工厂方法注入;

                        (二) 另一种则是使用注解的方式注入 @Autowired,@Resource,@Required。

(一)

【实体类】注:在配置xml过程中不同的注入方式需要配置不同的空间,标签比如aop

public class Person {  
 private String name;  
 private String sex;  
 private Date birthday;  
   

 public void Person(String name,String sex,Data birthday)
 {
   this.name = name;
   this.sex = sex;
   this.birthday = birthday;
 }

 public Date getBirthday() {  
  return birthday;  
 }  
 public void setBirthday(Date birthday) {  
  this.birthday = birthday;  
 }  
 public String getName() {  
  return name;  
 }  
 public void setName(String name) {  
  this.name = name;  
 }  
 public String getSex() {  
  return sex;  
 }  
 public void setSex(String sex) {  
  this.sex = sex;  
 }  
   
 public String toString(){  
  return "name: " + name + "/nsex: " + sex + "/nbirthday: " + birthday.toLocaleString();  
 }  

(1)属性注入

属性注入即通过setXxx()方法注入Bean的属性值或依赖对象,由于属性注入方式具有可选择性和灵活性高的优点,因此属性注入是实际应用中最常采用的注入方式。属性注入要求Bean提供一个默认的构造函数,并为需要注入的属性提供对应的Setter方法。Spring先调用Bean的默认构造函数实例化Bean对象,然后通过反射的方式调用Setter方法注入属性值。

【xml】

<bean id="dt" class="java.util.Date"></bean>  
<bean id="person" class="model.Person">  
   <property name="name" value="sunxing007" />  
   <property name="sex" value="M" />  
   <property name="birthday" ref="dt" />  
</bean> 

//ref的意思就是参考到另一个bean.

(2)构造函数注入

 使用构造函数注入的前提是Bean必须提供带参数的构造函数

【xml】注:需要注意的是, 你给出的构造参数顺序要与构造函数一致.因为构造函数可以由多个

<bean id="dt" class="java.util.Date"></bean>  
<bean id="person" class="model.Person">  
    <constructor-arg index="0" value="000002" />  
    <constructor-arg index="1" value="M" />  
    <constructor-arg index="2" ref="dt" />  
</bean> 

(3)工厂方法注入

如果我们为Person 提供一个工厂专门生产Person,一个方法可以是静态/动态的PersonFactory

【工厂方法PersonFactory工厂】

public class PersonFactory {  
 //动态
 public Person createJavaBook(){  
  //一个Date对象
  Date da = new Date();

  Person pon = new Person();  
  pon .setName("001");  
  pon .setSex("M");  
  pon .setBirthday(da);   
  return pon;  
 }  

 //静态 
 public static Person createPerson(){
  //一个Date对象
  Date da = new Date();
  return new Book("name1","M",da);  
 }  

}

【xml】

<bean id="Factory" class="model.factory.PersonFactory"></bean> 
<bean id="myPerson" factory-bean="Factory" factory-method="createJavaPerson"></bean>  

(二)注解的方式注入 @Autowired,@Resource,@Required

  链接《https://my.oschina.net/u/2937897/blog/910739

 

© 著作权归作者所有

javaART
粉丝 1
博文 36
码字总数 12872
作品 0
昆明
后端工程师
私信 提问
Spring IoC之Bean管理

Spring对Bean的管理包括Bean的初始化、Bean的注入、Bean的生命周期管理、Bean的作用域管理....等。Spring提供了三种实例化Bean的方式:使用类构造器、使用静态工厂类、使用工厂类;Spring通过...

Mr_YangFei
2016/03/29
69
0
spring入门--bean加载

[*] spring加载bean的两种方式 [*] spring依赖注入方式 [*] bean配置 源码地址 spring加载bean的两种方式 ClassPathXmlApplicationContext 从类路径下加载配置文件 FileSystemXmlApplication...

sunny_92
2017/11/09
0
0
Spring两种依赖注入方式的比较

我们知道,Spring对象属性的注入方式有两种:设值注入和构造注入。先看代码:   假设有个类为People,该对象包含三个属性,name和school还有age,这些属性都有各自的setter和getter方法,还...

摆渡者
2014/02/27
0
0
Spring框架注解扫描开启之配置细节

前言 Spring框架对Bean进行装配提供了很灵活的方式,下面归纳一下主要的方式: • 在XML中进行显示配置 • 在Java中进行显示配置 • 隐式的bean发现机制和自动装配 而自动装配实现就需要注解...

Javahih
2017/05/25
0
0
深入研究Spring-IoC:源码分析依赖注入

1.前言 对于容器创建的过程已经阐述过一遍了,下面是依赖注入的问题。Spring提供的依赖注入的方法主要由两种:一种是通过getBean的方法;另一种是通过注解@Autowaire。 需要指出的是依赖注入...

mengdonghui123456
2017/08/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何使用 rsync 备份 Linux 系统的一些介绍

备份一直是 Linux 世界的热门话题。回到 2017,David Both 为 Opensource.com 的读者在使用 rsync 备份 Linux 系统方面提了一些建议,在这年的更早时候,他发起了一项问卷调查询问大家,在 ...

xiangyunyan
25分钟前
0
0
二进制位操作

单片机,或者一些模块的设置操作,都是由一个字节数据来完成,每位各有定义。就需进行位操作来组合需要的数字结果。 以JavaScript为例,编写位操作。 我们期望得到这样一个二进制数:0101101...

format
39分钟前
3
0
聊聊中国的通信行业:从“七国八制”到“中华”脊梁

本期文章和大家一起来聊一聊我曾经从事过的通信行业吧。最近各方面信息的泛滥,包括和华为的同学聊天,自己确实也感慨颇多。想想我自己本科主修通信工程,研究生再修信息与通信工程,从本科开...

CodeSheep
今天
7
0
MDK:ARM M451M:exceed the range of code meory, continue to erase or not?

问题: 代码空间超限 几天前就遇到:exceed the range of code meory, continue to erase or not? 如下所示: 解决过程 开始以为中MDK软件的128KB限制,如是就不能生成HEX文件,应该链接时有提...

SamXIAO
今天
1
1
OSChina 周六乱弹 —— 因违反《中华人民共和国治安管理处罚法》第四十四条之规定

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :#今日歌曲推荐# 惊艳分享谷微的单曲《安守本份》(@网易云音乐) 《安守本份》- 谷微 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
628
12

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部