spring引论
Spring引论
核心概念
-
代码书写现状
-
耦合度太高(应该是低耦合)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16// 业务层
public class BookService implements BookService {
// 导致耦合度高
private BookDao bookDao = new BookDaoImpl1();
public void save() {
bookDao.save();
}
}
// 数据层
public class BookDaoImpl1 implements BookDao {
public void save() {
System.out.println("book dao save...")
}
}如果数据层发生改变(换成别的),则业务层也需要重新变动、编译、测试、部署、发布。
-
解决方案
-
使用对象时,在程序中不要主动使用new 产生对象,转换为由外部提供对象。
-
这种方法被称为IoC( Inversion of control )
- 对象的创建控制权由程序转移到外部
- Spring技术对IoC思想进行了实现
- Spring 提供了一个容器,称为IoC容器,用来充当IoC思想中的外部
- IoC容器负责对象的创建、初始化等一系列工作,被创建或者被管理的对象再在IoC容器中统称为Bean
- DI ( Dependency Injection )依赖注入
- 在容器中建立bean和bean之间依赖关系的整个过程,称为依赖注入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24// 业务层
public class BookService implements BookService {
// 导致耦合度高
private BookDao bookDao;
public void save() {
bookDao.save();
}
}
// 数据层
public class BookDaoImpl1 implements BookDao {
public void save() {
System.out.println("book dao save...")
}
}
// IoC容器 (管理大量对象的创建、初始化过程)
`````````````````````````````````````````````````````````````````````````````````````````
` `
` service------>dao `
` `
`````````````````````````````````````````````````````````````````````````````````````````
-
-
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Dludoraの博客!
评论
ValineDisqus