【Spring】—— 自动装配
一、Spring中装配bean的方式
1.在XML中显式配置
2.在Java中进行显式配置
3.隐士的bean发现机制和自动装配
二、自动装配示例
1.在需要装配到其他bean中的类中加入@Component注解
package study.spring.configure.auto;import org.springframework.stereotype.Component;/*** 第一步:将该类声明成一个组件类,括号内的参数为组件类的id自定义名称,也可以使用@Named.* spring会自动生成该类的bean* @author wang**/ @Component("lonelyHeartsClub") public class SgtPeppers implements CompactDisc{private String titil = "Sgt. Pepper's Lonely Hearts Club Band.";private String artist = "The Beatles";@Overridepublic void play() {System.out.println("Playing " + titil + " by " + artist);}}
2.开启组件扫描
i.使用java配置开启
package study.spring.configure.auto;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;/** 使用@ComponentScan注解开启组件扫描,设置扫描的基础包名* 参数basePackages* 或者basePackageClasses*/@Configuration @ComponentScan(basePackages={"study.spring.configure.auto","study.spring.configure.auto2"}) public class CDPlayerConfig {}
ii.使用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"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"> <context:component-scan base-package="study.spring.configure.auto"></context:component-scan></beans>
3.在注入的bean中选择三种方法,使用@Autowired对bean注入
i.在属性上直接注入
ii.在构造方法上注入
iii.在Set方法上注入
package study.spring.configure.auto;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;@Component public class CDPleayer {@Autowiredprivate CompactDisc cd;public CompactDisc getCd() {return cd;}/** 不同的注入方法* 1. set方法注入* 2. 构造器注入* 3. 属性上直接注入 * * @Autowired与@Inject类似*/@Autowiredpublic void setCd(CompactDisc cd) {this.cd = cd;}@Autowired(required=false)public CDPleayer(CompactDisc compactDisc) {this.cd = compactDisc;}public void play(){cd.play();} }
注:可以在任何方法上使用@Autowired注入
三、自动注入的局限性
虽然自动注入很方便,但是自动注入需要自动创建bean实例,但是对于第三方的jar包中的类文件而言,不能直接使用注解进行声明为组件,因此还需要xml配置。
转载于:https://www.cnblogs.com/bopo/p/9274455.html
【Spring】—— 自动装配相关推荐
- Spring 自动装配 ‘byType’
转载自 Spring 自动装配 'byType' Spring 自动装配 'byType' 这种模式由属性类型指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans ...
- Spring 自动装配 ‘byName’
转载自 Spring 自动装配 'byName' Spring 自动装配 'byName' 这种模式由属性名称指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans 的 ...
- spring自动装配依赖包_解决Spring自动装配中的循环依赖
spring自动装配依赖包 我认为这篇文章是在企业应用程序开发中使用Spring的最佳实践. 使用Spring编写企业Web应用程序时,服务层中的服务量可能会增加. 服务层中的每个服务可能会消耗其他服 ...
- Java的注解机制——Spring自动装配的实现原理
JDK1.5加入了对注解机制的支持,实际上我学习Java的时候就已经使用JDK1.6了,而且除了@Override和@SuppressWarnings(后者还是IDE给生成的--)之外没接触过其他的. ...
- Spring自动装配----注解装配----Spring自带的@Autowired注解
Spring自动装配----注解装配----Spring自带的@Autowired注解 父类 package cn.ychx;public interface Person {public void ...
- spring自动装配、注解
spring自动装配 Spring 自动装配 byName 这种模式由属性名称指定自动装配.Spring 容器看作 beans,在 XML 配置文件中 beans 的 auto-wire 属性设置为 ...
- Spring自动装配(autowire)篇
什么是自动装配 自动装配帮我们省去了 property标签配置操作,Spring会自动根据 属性名称,类型,构造器来进行自动注入. 例如不进行自动装配配置如下: <bean id="u ...
- 一步一步手绘Spring DI运行时序图(Spring 自动装配之依赖注入)
相关内容: 架构师系列内容:架构师学习笔记(持续更新) 一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程) 一步一步手绘Spring IOC运行时序图二(基于XM ...
- 第六篇 Spring 自动装配
<Spring>篇章整体栏目 ----------------------------- [第一章]spring 概念与体系结构 [第二章]spring IoC 的工作原理 [第三章]sp ...
- (二)Spring自动装配
Spring自动装配 为了减少XML的配置数量.Spring提供了几种技巧来解决这一问题: 自动装配(autowiring): 有助于减少<property>元素和<constroc ...
最新文章
- 2D和3D机器视觉检测技术的优势和局限性
- Canny边缘检测原理及C#程序实现
- 【渝粤教育】电大中专计算机常用工具软件 (2)作业 题库
- Nginx应用案例分享:压力测试
- linux 下qt 终端隐藏在后台_20 个 Linux 终端下的生产力工具 | Linux 中国
- Dubbo学习笔记(一)
- 计算机信息科学与应用技术学术论,第三届计算机信息科学与应用技术国际学术论坛(ISCISAT .DOC...
- 十本数据结构与算法书籍推荐
- java flv 转swf_nginx-http-flv-module flv拉流错误整理
- 汇编 DOS系统功能调用
- OceanBase 之 OBCA考试总结
- win7系统怎么进行网络重置?
- TCP之 select模型
- Storport MSI (Message Signaled Interrupts)
- 小武告诉滨滨每天可以吃一块或者两块巧克力。假设滨滨每天都吃巧克力,问滨滨共有多少种不同的吃完巧克力的方案。
- Django中filer和get的区别
- js实现格式化JSON数据方法
- 贝拉博客,一个屌丝网站
- SpringBoot国际化失败的原因,切换中英文无效
- 贾跃亭要回国圆“造车梦”?FF关联公司广州拿地601亩