一、Spring的概述
1.什么是spring?
Spring 是分层的Java SE/EE 应用full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。
2.spring的优势
- Spring是一个开源免费的框架(容器)
- Spring是一个轻量级的,非入侵式的框架
- 控制反转(IOC),面向切面编程(AOP)
- 支持事务的处理,对框架整合的支持。
- 方便解耦,简化开发
- 降低 JavaEE API 的使用难度
总结一句话:Spring是一个轻量级的控制反转和面向切面编程的框架。
弊端:发展了太久以后,违背了原来的理念,配置十分繁琐,人称:配地狱。
3.spring的几个核心技术(7个)
- spring core:核心类库,提供ioc服务;
- Spring 上下文: Spring 上下文是一个配置文件,向Spring框架提供上下文信息;
- Spring AOP:通过使用Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中;
- spring dao:对JDBC的抽象,简化了数据访问异常的处理;
- spring orm:对现有的ORM框架的支持;
- spring web:提供了基本的面向Web的综合特性,例如多方文件上传;
- spring mvc:提供面向Web应用的Model-View-Controller实现。
4.开发中主要使用 Spring 的什么技术 ?
- IOC 容器管理各层的组件
- 使用 AOP 配置声明式事务
- 整合其他框架
5.Spring体系结构
6.拓展
Spring官网有这个介绍:现代化的Java开发,说白就是基于Spring的开发。
- Spring Boot
- 一个快速开发的脚手架。
- 基于Spring Boot可以快速的开发单个微服务
- 约定大于配置。
- Spring Cloud
- Spring Cloud是基于Spring Boot实现的。
7.Spring 框架中都用到了哪些设计模式?
(1)工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例。
(2)单例模式:Bean默认为单例模式。
(3)代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术。
(4)模板方法:用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。
(5)观察者模式:定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被制动更新,如Spring中listener的实现–ApplicationListener。