Spring实战 (第3版)——依赖注入
首先弄明白几个概念:
1、什么是POJO
2、JavaBean规范
3、EJB(Enterprise JavaBean)
体会Spring如何简化Java开发。
创建应用对象(组件)之间协作关系的行为通常称为装配,这也是依赖注入的本质。
依赖注入让相互协作的软件组件保持松散耦合,而AOP编程允许你把遍布应用各处的功能分离出来形成可重用的组件。
面向切面编程往往被定义为促使应用程序分离关注点的一项技术。
依赖注入的真正价值在于把相互协作的对象装配在一起,而不需要这些对象自己负责装配。
如果一个对象只通过接口(而不是具体实现或初始化的过程)来表明依赖关系,那么这种依赖就能够在对象本身毫不知情
的情况下,用不同的具体实现进行替换。对依赖进行替换的最常用的方法之一,就是在测试的时候使用mock实现。
1、依赖注入的方式之一是构造器注入。(所谓的依赖注入就是以参数的形式把一个类传递到另一个类中)
// 通过构造器注入对象引用
public class A
{
private B b;
public A(B b)
{
this.b=b; //B被注入进来 如果B是一个接口,将更具有灵活性
}
}
2、属性注入(POJO类)
public class A
{
private int No;
private B b;
public int getNo() {
return No;
} public void setNo(int no) {
No = no; // 注入简单值 No
} public B getB() {
return b;
} public void setB(B b) {
this.b = b; // 注入自定义类型B
} }
Spring提倡面向接口编程,面向接口编程与依赖注入协作实现了松散耦合。
Spring是使用反射来创建Bean的。

Spring的单例Bean只能保证在每个应用上下文中只有一个Bean的实例。真正的单例,在每个类加载器中保证只有一个实例。

Spring实战 (第3版)——依赖注入的更多相关文章
- Spring实战(第4版).pdf - 百度云资源
http://www.supan.vip/spring%E5%AE%9E%E6%88%98 Spring实战(第4版).pdf 关于本书 Spring框架是以简化Java EE应用程序的开发为目标而创 ...
- Spring IOC(三)依赖注入
本系列目录: Spring IOC(一)概览 Spring IOC(二)容器初始化 Spring IOC(三)依赖注入 Spring IOC(四)总结 目录 1.AbstractBeanFactory ...
- spring学习(二)---依赖注入
spring第二个特性是依赖注入. 学习依赖注入,首先应该明白两个问题:1,谁依赖谁:2,谁注入,注入什么? 首先还是看代码: 还是这个bean: package testSpring.busines ...
- Spring IOC(五)依赖注入
Spring IOC(五)依赖注入 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) 一.autowire 五种注入方式测试 ...
- Java Spring学习笔记----Bean的依赖注入(设值注入方式)1
Spring常用的两种依赖注入方式:一种是设值注入方式,利用Bean的setter方法设置Bean的属性值:另一种是构造注入,通过给Bean的构造方法传递参数来实现Bean的属性赋值: 1.设值注入方 ...
- 7 -- Spring的基本用法 -- 3... Spring 的核心机制 : 依赖注入
7.3 Spring 的核心机制 : 依赖注入 Spring 框架的核心功能有两个. Spring容器作为超级大工厂,负责创建.管理所有的Java对象,这些Java对象被称为Bean. Spring容 ...
- 深入浅出spring IOC中三种依赖注入方式
深入浅出spring IOC中三种依赖注入方式 spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和 ...
- 转:深入浅出spring IOC中四种依赖注入方式
转:https://blog.csdn.net/u010800201/article/details/72674420 深入浅出spring IOC中四种依赖注入方式 PS:前三种是我转载的,第四种是 ...
- Spring的核心机制:依赖注入
依赖注入的概念 当一个对象要调用另一个对象时,一般是new一个被调用的对象,示例: class A{ private B b=new B(); public void test(){ b.say ...
随机推荐
- ng-if else的使用
<!DOCTYPE html> <html> <head> <script src="http://code.angularjs.org/1.2.0 ...
- Jenkins邮件扩展插件【Email Extension Plugin】的参数使用
经过测试,无论在windows还是linux,统一使用参数时,都是按照linux的格式,如:${WORKPASE}
- Git 服务器搭建
接下来我们将以 Centos 为例搭建 Git 服务器. 1.安装Git $ yum install curl-devel expat-devel gettext-devel openssl-deve ...
- 洛谷P1595 信封问题
题目描述 某人写了n封信和n个信封,如果所有的信都装错了信封.求所有信都装错信封共有多少种不同情况. 输入输出格式 输入格式: 一个信封数n 输出格式: 一个整数,代表有多少种情况. 输入输出样例 输 ...
- MongoDB安装,配置
安装 cd /usr/local/srcwget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.6.tgztar z ...
- 通过oauth 认证 新浪微博 开发过程中遇到的问题
1 Android之NetworkOnMainThreadException异常 http://blog.csdn.net/mad1989/article/details/25964495 ,从Hon ...
- React Native 开发之 (07) 常用组件-View
掌握了React Native的组件就可以使用IOS的原生组件和API. 一 View组件 就像开发web应用程序中,需要使用很多的HTML标签.例如 div,form.但是在基于DIV+CSS布局的 ...
- oracle--知识点汇总1
同义词: -- e是scott.emp表的临时别名 select e.* from (select * from scott.emp) e; --创建私有同义词 create synonym myem ...
- Apache+php+mysql+SQLyog在windows7下的安装与配置图解
先准备好软件: Apache官方下载地址:httpd-2.2.25-win32-x86-openssl-0.9.8y.msi,更多版本在这里: php官方下载地址:php-5.4.37-Win32-V ...
- 自然语言15.1_Part of Speech Tagging 词性标注
QQ:231469242 欢迎喜欢nltk朋友交流 https://en.wikipedia.org/wiki/Part-of-speech_tagging In corpus linguistics ...