【Spring学习笔记】依赖注入
来源:互联网 发布:怎么装潢淘宝店铺 编辑:程序博客网 时间:2024/03/29 16:58
每个java项目都是由很多的java类组成,细粒度到每个功能点都是由这些java类协同完成。
静/动态代理技术
在Spring依赖注入前工程师们为了降低代码耦合度试了很多的办法,其中被广泛使用的技术就是静/动态代理技术,这里就不做详细介绍。
静态与动态代理
Spring依赖注入
为了降低代码耦合度Spring引入了依赖注入技术,为了使java类协同作业需要Spring知道这些类的存在,所以我们需要将java类都注入到Spring容器中,这里Spring提供了两种实现方式。
一、组件自动扫描
Spring目前支持xml和java类两种注入方式,个人比较喜欢java类配置。
基于xml:
在xml配置类中增加“<context:component-scan>”并且java类上增加@Component即可扫描到组件beanId默认为类名称首字母小写。
基于java配置:
需要在java类上增加@Configuration标识这个类为配置类,并且增加@ComponentScan来扫描组件,其中java类必须增加@Component标签来注入Spring容器中。
二、显示注入
在xml中增加<bean class="类的路径" id="bean的id">
在java类中注入
javaBean接口
package com.example.readingli.inter;import com.example.readingli.bean.Book;public interface IReadingBook {/** * 通过书名获取 * @param bookName */Book doGetreadingBooks(String bookName);}
javaBean实现类
package com.example.readingli.impl;import com.example.readingli.bean.Book;import com.example.readingli.inter.IReadingBook;public class ReadingBookImpl implements IReadingBook {@Overridepublic Book doGetreadingBooks(String bookName) {return null;}}java配置类
package com.example.readingli.cfg;import org.springframework.context.annotation.Configuration;import com.example.readingli.impl.ReadingBookImpl;import com.example.readingli.inter.IReadingBook;@Configurationpublic class JavaConfig {public IReadingBook getBook(){return new ReadingBookImpl();}}组合配置
将多个java配置类组合到一起可以使用@Import标签例如:@Import(JavaCfg.class),将xml配置类导入到java配置类中使用@ImportResource(“classpath:xml名”),将java配置类引入到xml中<bean class="java配置类路径">
小结:
以上内容介绍了Spring的自动和显示注入,个人比较建议使用自动注入的方式,减少配置和维护成本。其中Java配置是一种新的配置方式,我也比较喜欢使用。
依赖注入是Spring中最核心的内容之一,必须全面掌握才能在之后的使用中游刃有余。
- Spring 学习笔记 ----依赖注入
- [学习笔记]Spring依赖注入
- Spring学习笔记 依赖注入
- 【Spring学习笔记】依赖注入
- spring学习笔记3--依赖注入对象
- Spring学习笔记(1)---依赖注入
- Spring 学习笔记 - IOC/依赖注入
- Spring学习笔记(8)-----------依赖注入
- spring学习笔记(4)依赖注入详解
- spring 依赖注入DI-个人学习笔记
- 【Spring学习笔记二】-理解依赖注入
- spring学习笔记 依赖注入详解
- Spring学习笔记(三)依赖注入
- Spring 学习-------依赖注入
- Spring学习笔记——Spring依赖注入原理分析
- Spring.NET学习笔记(2)-依赖注入细节
- Spring.NET学习笔记(1)-基本依赖注入
- Spring.NET学习笔记(1)-基本依赖注入
- 开源控件学习--Eventbus的原理和理解
- 免费在线生成彩色带logo的个性二维码
- 多态性(polymorphism)
- thread17
- 【程序员面试金典】回文链表
- 【Spring学习笔记】依赖注入
- 视图
- typescript /javascript 中 将秒转化成时分秒
- Go游戏服务器开发的一些思考(一):语言层面
- MPAndroidChart常见设置属性(一)——应用层
- IOS Swift3.1 界面中画定位线
- webview的使用
- java范型的理解
- 336. Palindrome Pairs