自动装配(AutoWire)

根据 autowire 的配置选择装配策略

byName 选择和属性名 name 一致的 bean 进行装配;

byType 根据类型选择,如果对应的类型匹配到多个bean,则会报错,如下配置:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xsi:schemaLocation="http://www.springframework.org/schema/beans
 5            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 6
 7   <bean name="userDAO1" class="com.bjsxt.dao.impl.UserDAOImpl">
 8       <property name="daoId" value="1"></property>
 9   </bean>
10
11   <bean name="userDAO2" class="com.bjsxt.dao.impl.UserDAOImpl">
12       <property name="daoId" value="2"></property>
13   </bean>
14
15   <bean id="userService" class="com.bjsxt.service.UserService" scope="singleton" autowire="byType">
16       <!-- <property name="userDAO">
17           <ref bean="userDAO1"/>
18       </property> -->
19   </bean>
20
21 </beans>

报错:

还能配置在 beans 标签下,设置整个配置文件的装配策略,里面的值也是那几个配置。

代码链接: http://pan.baidu.com/s/1slPPUzz 密码: 1d9e

jar包链接: http://pan.baidu.com/s/1pKAKAQB 密码: fjc3

时间: 2024-11-10 18:35:40

自动装配(AutoWire)的相关文章

Spring(二)scope、集合注入、自动装配、生命周期

原文链接:http://www.orlion.ga/189/ 一.scope bean的scope属性中常用的有两种:singleton(单例,默认)和prototype(原型,每次创建新对象) 例:beans.xml <bean id="userService" class="ml.orlion.service.UserService" scope="prototype">     <property name="u

Spring抛出异常_自动装配

Spring自动装配(autowire)出错 报错如下: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'person' defined in class path resource [appContext.xml]: Unsatisfied dependency expressed through bean property 'axe': : No

Spring4-自动装配Beans-按属性名称自动装配

1.创建Maven项目,项目名称springdemo15,如图所示 2.配置Maven,修改项目中的pom.xml文件,修改内容如下 <project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

Spring9 : Autowire(自动装配)机制

原文出处: 五月的仓颉 为什么Spring要支持Autowire(自动装配) 先写几个类,首先定义一个Animal接口表示动物: 1 2 3 4 5 public interface Animal {        public void eat();       } 写一个Animal接口的实现Tiger类: 1 2 3 4 5 6 7 8 9 10 11 12 public class Tiger implements Animal {     @Override     public vo

【Spring9】AutoWire(自动装配)机制

为什么Spring要支持Autowire(自动装配) 先写几个类,首先定义一个Animal接口表示动物: 1 public interface Animal { 2 3 public void eat(); 4 5 } 写一个Animal接口的实现Tiger类: 1 public class Tiger implements Animal { 2 3 @Override 4 public void eat() { 5 System.out.println("Tiger.eat()");

Autowire(自动装配)机制

为什么Spring要支持Autowire(自动装配) 先写几个类,首先定义一个Animal接口表示动物: 1 public interface Animal { 2 3 public void eat(); 4 5 } 写一个Animal接口的实现Tiger类: 1 public class Tiger implements Animal { 2 3 @Override 4 public void eat() { 5 System.out.println("Tiger.eat()");

Spring - bean的autowire属性(自动装配)

当我们要往一个bean的某个属性里注入另外一个bean,我们会使用<property> + <ref/>标签的形式.但是对于大型项目,假设有一个bean A被多个bean引用注入,如果A的id因为某种原因修改了,那么所有引用了A的bean的<ref/>标签内容都得修改,这时候如果使用autowire="byType",那么引用了A的bean就完全不用修改了.autowire到底都什么用?我们继续往下看. autowire的用法: <bean i

自动装配【Spring autowire】

public class AutoWiringDao { private String daoName; public void setDaoName(String daoName) { this.daoName = daoName; } public String getDaoName() { return daoName; } public void say(String word) { System.out.println(daoName + "===AutoWiringDao===&qu

Spring笔记04(DI(给属性赋值),自动装配(autowire))

1.DI(给属性赋值)的四种方式: 01.Student实体类: package cn.pb.bean; /** * 学生实体类 */ public class Student { private String name; //姓名 private Integer age; //年龄 private Grade grade; //年级 @Override public String toString() { return "Student [name=" + name + "