此博客为学习笔记,记录下来怕自己后面学着学着忘记了。
Spring简介
Spring是一个轻量级Java开发框架,核心是控制反转(IoC)和面向切面(AOP)的容器,由Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑与其他各层的耦合问题。
何为耦合?
耦合;程序间的依赖关系,包括以下两种。
①类之间的依赖
②方法之间的依赖
耦合弊端:独立性很差,代码维护难度相对较高
解耦:尽可能降低程序间的依赖关系
实际开发中应该做到:编译期间不依赖,运行时才依赖
解耦思路:
-
第一步:使用反射来创建对象,而避免使用new关键字
-
第二步:通过读取配置文件来获取要创建的对象权限定类名
spring是如何通过IoC控制反转来解耦得将会在下一篇文章中详解:
Spring5基础(2)——Spring IoC控制反转(基础)
Spring体系结构
Spring框架已集成20多个模块,包括核心容器,数据访问/集成层,web层,AOP面向切面编程模块,Aspects切面,Instrumentation植入模块,Messaging消息传输,Test测试。
这是官方体系图:
①核心容器(Core Container)
Spring的核心容器是其他模块建立的基础。
Spring-core:提供框架的基本组成部分,包括 控制反转(IoC)和依赖注入(DI) 功能。
Spring-beans:提供BeanFactory,由工厂模式实现,Spring将代理对象称为Bean。
Spring-context:建立在core和beans基础上,提供框架式的访问方式。
Spring-SpEL:表达式语言 Spring Expression Language(简称 SpEL ),支持运行时查询和操作对象图的表达式语言.
②数据库访问/集成
Spring-jdbc:提供JDBC抽象层,消除编码和特有的数据库错误解析。
Spring-orm:为对象关系映射API提供集成层。
Spring-oxm:提供支持对象/xml映射的抽象层实现。
Spring-jms:Java消息传递服务。
Spring-tx:事务,实现特殊接口和普通Java对象类的编程和声明式事务管理。
③Web
Spring-web:提供web开发基本的集成功能。
Spring-webmvc:即Web-Servlet,包含用于web应用的SpringMVC和REST Web Servies实现。
Spring-websocket:提供WebSocket和SockJS实现。
Portlet:类似于Servlet模块的功能。
④Spring-test
支持用JUnit和Spring组件进行单元测试和集成测试。
⑤其他
Spring-aop:提供符合AOP要求的面向切面的编程实现。
Spring-aspects:提供与AspectJ的集成功能。
Spring-Instrument:提供类植入和类加载器的实现。
Spring-messaging:提供对消息传递体系结构和协议的支持。
emmmm…概念真多,但以后会在实际开发的运用,应该会对该体系慢慢深入理解。