Spring -08 -自动注入 -byName/byType/constructor -全局使用default-autowire=” byName"
2024-08-21 21:38:19
1.在Spring 配置文件中对象名和ref=”id”id 名相同使用自动注入,可以不配置<property/>
2.两种配置办法
2.1在<bean>中通过 autowire=”” 配置,只对这个<bean>生效
2.2在<beans>中通过 default-autowire=””配置,表当当前文件中所有<bean>都是全局配置内容
3.autowire=”” 的可取值
3.1default: 默认值,根据全局 default-autowire=””值. 默认全局和局部都没有配置情况下,相当于no.
3.2no: 不自动注入
public class People { //类的关系
private Teacher teacher;
}
<bean id="teacher" class="com.test.Teacher"></bean>
<bean id="people" class="com.test.People" autowire="default">
<property name="teacher" ref="teacher"></property>
</bean>
<bean id="teacher" class="com.test.Teacher"></bean>
<bean id="people" class="com.test.People">
<property name="teacher" ref="teacher"></property>
</bean>
3.3byName: 通过名称自动注入.在Spring 容器中寻找缺省的类的同名的Id
<bean id="teacher" class="com.test.Teacher"></bean>
<bean id="people" class="com.test.People" autowire="byName"></bean>
3.4byType: 根据类型注入.
3.4.1spring 容器中不可以出现两个相同类型的<bean>
<bean id="teacher123" class="com.test.Teacher"></bean>
<bean id="people" class="com.test.People" autowire="byType"></bean>
输出: People{teacher=com.test.Teacher@6093dd95}
<bean id="teacher123" class="com.test.Teacher"></bean>
<bean id="teacher124" class="com.test.Teacher"></bean>
<bean id="people" class="com.test.People" autowire="byType"></bean>
输出报错信息:expected single matching bean but found 2: teacher123,teacher124
3.5constructor: 根据构造方法注入.
3.5.1提供对应参数的构造方法(构造方法参数中包含注入对戏那个)
<bean id="teacher123" class="com.test.Teacher"></bean>
<bean id="teacher" class="com.test.Teacher"></bean>
<!--保证constructor的入口参数和id的名称一致 -->
<bean id="people" class="com.test.People" autowire="constructor"></bean>
public class People {
private Teacher teacher; public People() {
} public People(Teacher teacher123) {
this.teacher = teacher123;
}
}
建议: 在全局使用default-autowire=” byName "
最新文章
- oc--UINavigationController控制器
- Android无法收到指定广播的问题总结
- SQL Server 索引和视图
- T-SQL备忘(5):查看执行计划
- Mac 配置java版本 ---- MySql数据库权限设置 --- openfire
- Immediate Decodability(字典树)
- 利用VS自带的命令行工具查看和生产PublicKeyToken (转)
- Hibernat之关系的处理一对多/多对一
- referencedColumnName
- Dalsa Sherlock 直连千兆网相机(通用驱动)
- struts2.3.23升级到struts2.3.32
- ASP.NET MVC不可或缺的部分——DI(IOC)容器及控制器重构的剖析(DI的实现原理)
- Java实现发送邮件(可配置)忘记密码,发送邮件
- java设计模式:面向对象设计的7个原则
- 编译wxWidgets
- jweixin-1.1.0.js微信接口“分享给朋友”文字和图片配置
- Amazon
- Runloop, 多线程
- Django之模板层-语法:{{ }}
- Android开发日记(七)