Spring4类属性自动装配和方法注入
来源:互联网 发布:淘宝客服培训班 编辑:程序博客网 时间:2024/06/05 23:53
1.自动装配(beans最外层头部标签里添加default-autowire =”xxx”)
xxx的取值
①byName
一个beanA(Person)中有属性是另外一个类对象(beanB如User),
依赖注入后,beanA类中定义的对象属性值会根据beanB注入命名比如为user来匹配对应的类对象User user。
public class Person {private String name;private User user;//此处的user在User对象注入bean时候命名id匹配}
②byType(如对象的类型User类)
如果在beans.xml中注入了同个类但是不同bean的id,会报错。
因为此时出现了同个类型的两个bean。
public class Person {private String name;private User user;//此处的User对象就是byType的根据}
③constructor
在Person中有构造方法,传入参数为User user,则如果beans.xml中有User类型的bean,会自动将其匹配到Person的构造方法中,赋值给user。
public class Person {private String name;private User user;public Person(User user) { //此处的User类就是constructor的//根据,会在bean中查找该类型的bean赋值,注意是根据类型,和id无关super();this.user = user;}}
2.方法注入
由于每个bean默认是单例,如果需要每次获取bean时候是不同的实例,则在bean的头部里面添加scope=”prototype”、
即
<bean id = "user" class = ''xx.xx.entity.User" scope = "prototype" />
如果其他类中有该属性
<bean id = "person" class = ''xx.xx.entity.Person" > <property name = "name" value = "xxx" /> <property name = "user" ref = "user" /></bean>
如果是以上的配置则会在Person中只有一个User对象而不是多个
要实现多个User对象
将Person写成抽象类 并且getUser的方法也是抽象方法
配置文件变为
<bean id = "person" class = ''xx.xx.entity.Person" > <property name = "name" value = "xxx" /> <lookup-method name ="getUser" bean = "user" /></bean>
就可以实现多个User对象实例。
3.方法替换
即如果Person中的getUser方法需要被其他类的方法替换(其实是对其属性user的赋值),获取到另外的值。比如是Person2类的方法,建立
public class Person2 implements MethodReplacer {//实现方法reimplement //返回的是user类}
那么配置文件中
<bean id = "person" class = "xx.xx.entity.Person" > <property name = "name" value = "xxx" /> <replaced-method name ="getUser" replacer= "person2" /></bean><bean id = "person2" class = "xx.xx.entity.Person2" />
阅读全文
0 0
- Spring4类属性自动装配和方法注入
- spring 常用属性注入和自动装配
- Spring4装配bean和依赖注入
- J2EE系列之Spring4学习笔记(五)--IOC详解(自动装配,方法注入,方法替换)
- Spring依赖注入 — 属性自动装配
- Spring依赖注入 — 属性自动装配
- 基于Spring4的Bean的装配和依赖注入
- Spring Bean自动装配和注解注入
- spring 注入方式和自动装配介绍
- Spring4自动装配(default-autowire)
- Spring4.3入门 自动装配
- spring 自动装配注入
- Spring-方法注入、depends-on、自动装配协作对象
- Spring03---自动注入和属性注入
- Spring属性自动装配
- Spring 注入集合、依赖检查、自动组件扫描、过滤组件自动扫描、自动装配属性
- Spring4.0学习笔记-自动装配
- Spring 入门教程(三) 注入和自动装配
- 简单的聊一聊微信支付的那些事
- 欢迎使用CSDN-markdown编辑器
- 2017-09-21 LeetCode_032 Longest Valid Parentheses
- Round #435 (Div. 2)B. Mahmoud and Ehab and the bipartiteness(二分图染色)
- STL ——list和vector
- Spring4类属性自动装配和方法注入
- CentOS6.5安装配置Tomcat方法
- 信管16数据结构:实验二 线性表综合实验
- [ASP.NET]从ASP.NET Postback机制,到POST/GET方法
- slnklist(不带头结点的单链表)
- AngularJS 作用域与数据绑定机制
- SSH配置流程 (基于注解方式)
- AngularJS学习总结
- Node.js自定义实现文件路由功能