Spring Bean的自动装配
来源:互联网 发布:魅族手机数据备份 编辑:程序博客网 时间:2024/04/28 14:06
一个bean使用其他的bean,除了显式的配置XML文件外,也可以通过配置< bean >的autowire
属性来实现bean的自动装配。自动装配的好处是减少了构造器注入和setter注入配置(其实就是少了< property >标签,但是Bean里面set方法还是必须的),减少了配置文件的长度。
Spring 3.0支持以下4种自动装配模式:
下面以byType方式为例进行演示:
首先创建一个AutoWiringService类(set方法还是必须要写的):
package com.spring.test;public class AutoWiringService { private AutoWiringDao autoWiringDao; public void setAutoWiringDao(AutoWiringDao autoWiringDao) { this.autoWiringDao = autoWiringDao; } public void say(String s) { autoWiringDao.say(s); }}
然后创建一个的依赖类AutoWiringDao:
public class AutoWiringDao { public void say(String s) { System.out.println("AutoWiringDao:"+s); }}
XML配置文件:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="autoWiringService" class="com.spring.test.AutoWiringService" autowire="byType"></bean> <bean id="autoWiringDao" class="com.spring.test.AutoWiringDao"></bean></beans>
测试类:
public class App { public static void main(String[] args) { @SuppressWarnings("resource") ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-autowiring.xml"); AutoWiringService aService = (AutoWiringService) context.getBean("autoWiringService"); aService.say("Hello World!"); }}
测试结果:
如果配置了多个依赖类型的bean,那么byType的方式就会报错:
XML文件配置:
<bean id="autoWiringService" class="com.spring.test.AutoWiringService" autowire="byType"></bean> <bean id="autoWiringDao" class="com.spring.test.AutoWiringDao"></bean> <bean id="autoWiringDao2" class="com.spring.test.AutoWiringDao"></bean>
测试结果:
如果觉得对每个bean都配置一个autowire
太麻烦,那么可以通过全局的< beans >的default-autowire
属性来指定所有的bean的自动装配方式:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" default-autowire="byType"> ...<beans>
阅读全文
0 0
- Spring Bean的装配 -- 自动装配
- [Spring]Bean的自动装配
- # Spring Bean 的自动装配
- spring bean的自动装配
- spring bean的自动装配
- Spring的自动装配Bean
- Spring bean的自动装配
- 【Spring】Bean的自动装配
- Spring Bean的自动装配
- Spring bean的自动装配
- spring <bean>的自动装配
- Spring Bean装配-自动装配
- Spring Bean--自动装配
- Spring Bean 自动装配
- spring自动装配bean
- 关于Spring的bean自动装配
- Spring XML配置自动装配的Bean
- spring中bean的自动装配(6)
- 模式空间与保持空间
- 【Floyd+分治】计蒜客 百度地图的实时路况
- Android 通过jni返回Mat数据类型
- java集合框架
- Line belt 三分嵌套
- Spring Bean的自动装配
- java中的模板方法模式
- poj-3169Layout
- 超好用的网络抓包框架(Windivert)之一(介绍)
- 交叉验证(Cross Validation)
- 226. Invert Binary Tree
- CSU1565 Word Cloud
- android.view.ViewRootImpl$CalledFromWrongThreadException
- 【软工学习】第十一章——知识产权与标准化基础