Spring
Spring概述
2021-08-12 130 2
简介 学习一个新知识时,最好先有一个大局上的认识,本文章带你认识一下Spring。
1. Spring的基本概述
1、 Spring 是轻量级的开源的 JavaEE 框架
2、 Spring 可以解决企业应用开发的复杂性
3、 Spring 有两个核心部分: IoC 和 Aop
(1) IOC:控制反转,把创建对象过程交给 Spring 进行管理(传统的做法是我们 new Xxx(); 的方式创建一个对象)
(2) Aop:面向切面,不修改源代码进行功能增强(不需要改代码,而是通过修改配置,实现功能的扩展)
4、 Spring 特点
(1)方便解耦,简化开发
(2) Aop 编程支持
(3)方便程序测试
(4)方便和其他框架进行整合
(5)方便进行事务操作
(6)降低 API 开发难度
2. 下载Spring
1. Spring的官方网站是 https://spring.io/
2. 在官网上可以通过 rojects -> Spring Framework -> LEARN 查看当前最新版本
3. 下载dist文件(包含jar包和对应版本的源码)
https://repo.spring.io/ui/native/libs-release-local/org/springframework/spring/
4. 新建工程并导入jar包
Core Container 中包含的jar包导入到java项目中,就可以使用Spring的基本IoC 和 AOP特性了。
spring-beans-5.2.6.RELEASE.jar
spring-core-5.2.6.RELEASE.jar
spring-context-5.2.6.RELEASE.jar
spring-expression-5.2.6.RELEASE.jar
4.1 为什么会有IoC
传统方式对象间的调用
传统的 Service 调用 DAO, 在 Service 类的方法中需要创建DAO对象, 这导致了 OrderService强依赖于OrderDao,耦合度非常高
工厂方法方式(进一步解耦)
使用简单的工厂方法,可以使得 BookDao和 BookService 类之间不再直接依赖,也就是解耦了两个类之间的关系。(加一个层次后解耦)
但是引入了新的问题,BookFactory 依赖于 BookDao, BookService 依赖于 BookFactory
IoC(再进一步降低耦合度)
PhoneServiceImpl 依赖的是 PhoneDao 接口,这时候,P在honeDao 接口的实现类可以根据自己的业务定义多个,比如HUAWEIPhoneDaoImpl、MIPhoneDaoImpl、ApplePhoneDaoImpl等等, 具体需要注入的属性值(也就是PhoneDao实现类的对象),可以在 Spring的XML中配置。
这也就是依赖倒置原则(针对接口编程、面向接口编程而不是针对实现编程)、开闭原则(对扩展开放,对修改封闭)的具体体现。