【spring教程之八】spring自动装配

1、在我们之间的spring装配中,如果一个bean用到了另外一个bean文件,那么格式应该是这样的:

<!-- 主bean -->
		<bean id="A" class="com.test.pro.Singer">
			<property name="myb" ref="B"></property>
		</bean>
		<!-- 被装配的bean -->
		<bean id="B" class="com.test.pro.Instrument">
		</bean>

即beanA需要使用存取器注入B的时候,就需要上面的配置。

但是在自动装配中,假如在beanA中的属性值myb和B中的id一样的时候,就可以默认注入,不用显示的设置,即只要使用下面的格式就好:

		<!-- 主bean -->
		<bean id="A" class="com.test.pro.Singer">
			<!-- <property name="myb" ref="B"></property> 这句话可以省略掉-->
		</bean>
		<!-- 被装配的bean -->
		<bean id="myb" class="com.test.pro.Instrument">
		</bean>

2、核心xml配置文件

		 <bean id="piano" class="com.test.pro.Instrument">
		      <property name="name" value="钢琴"></property>
		</bean>

		<bean id="jack" class="com.test.pro.Singer" autowire="byName">
		</bean>

3、bean类

package com.test.pro;

import java.util.List;

public class Singer {
	private Instrument piano;

	public Instrument getPiano() {
		return piano;
	}

	public void setPiano(Instrument piano) {
		this.piano = piano;
	}

	public void saying()
	{
		System.out.println(piano.getName());
	}
}
package com.test.pro;

public class Instrument {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

输出结果:

时间: 2024-09-30 18:52:24

【spring教程之八】spring自动装配的相关文章

创建spring自定义注解进行自动装配

1.创建自定义注解 1 import org.springframework.beans.factory.annotation.Qualifier; 2 import java.lang.annotation.ElementType; 3 import java.lang.annotation.Retention; 4 import java.lang.annotation.RetentionPolicy; 5 import java.lang.annotation.Target; 6 7 8

8 -- 深入使用Spring -- 7...4 使用自动装配

8.7.4 使用自动装配 在自动装配策略下,Action还是由Spring插件创建,Spring 插件在创建Action实例时,利用Spring的自动装配策略,将对应的业务逻辑组件注入Action实例中.这种整合策略的配置文件简单,但控制器和业务逻辑组件耦合又提升到了代码层次,耦合较高. 如果不指定自动装配,则系统默认使用按byName自动装配.前面的整合策略并没有指定任何自动装配策略. 所谓自动装配,即让Spring自动管理Bean与Bean之间的依赖关系,无须使用ref显示指定依赖Bean.

在Spring中通过构造自动装配--constructor

在Spring中,可以使用"通过构造自动装配",实际上是按构造函数的参数类型自动装配. 这意味着,如果一个bean的数据类型与其他bean的构造器参数的数据类型是相同的,那么将自动装配. package auto_constructor; /** * Created by luozhitao on 2017/8/9. */ public class student { public String getName() { return name; } public void setNam

Spring @Autowired注解与自动装配

1   配置文件的方法 一般编写spring 框架的代码时候.一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量.并且要配套写上 get 和 set方法. Boss 拥有 Office 和 Car 类型的两个属性 1 public class Boss { 2 private Car car; 3 private Office office; 4 5 // 省略 get/setter 没写 6 7 @Override 8 public String toStri

【Spring实战】—— 8 自动装配

本篇介绍一下自动装配的知识,Spring为了简化配置文件的编写.采用自动装配方式,自动的装载需要的bean. 自动装配 有以下几种方式: 1 byName 通过id的名字与属性的名字进行判断,要保证Bean实例中属性名字与该装配的id名字相同. 2 byType 通过类型确定装配的bean,但是当存在多个类型符合的bean时,会报错. 3 contructor 在构造注入时,使用该装配方式,效果如同byType. 4 autodetect 自动装配,这个测试了,3.0.5版本不可用了,不知道是不

Spring基于的注解自动装配和依赖注入(***)

#自动装配的小Demo: package com.gyf.annotation; public interface UserDao { public void save(); } package com.gyf.annotation; import org.springframework.stereotype.Repository; @Repository("userDao") public class UserDaoImpl implements UserDao { @Overrid

Spring学习总结(2)-自动装配

上面说过,IOC的注入有两个地方需要提供依赖关系,一是类的定义中,二是在spring的配置中需要去描述.自动装配则把第二个取消了,即我们仅仅需要在类中提供依赖,继而把对象交给容器管理即可完成注入.在实际开发中,描述类之间的依赖关系通常是大篇幅的,如果使用自动装配则省去了很多配置,并且如果对象的依赖发生更新我们可以不需要去更新配置,但是也带来了一定的缺点. 说白了就是只需要声明bean,至于对象间的相互引用关系由Spring自己搞定.. 使用方式:no(不启用),byName(根据名称),byTy

spring属性赋值和自动装配

一  @Value赋值和@propertySource加载外部配置文件 1.@Value 一般用在属性和setter方法上,当该类注册成bean时,会自动为其属性或方法的参数赋值.注意:一定不能用在静态方法上,否则会失效 2.用法: @Value("placeholder")    //赋予指定值 @Value("${placeholder}")  //赋予配置文件中指定key为placeholder的值 3.@PropertySource("classp

Spring初学之annotation自动装配

直接看代码: UserController.java package spring.beans.annotation.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import spring.beans.annotation.service.UserService; @Controller pu