Spring框架主要内容

作者:陆金龙    发表时间:2022-02-15 09:42   

关键词Spring, IOC, AOP, MVC, SpringBoot

1.Spring简介

Spring是一个用于构造Java应用程序的轻量级开源框架。

相比于structs这类框架,Spring不限定于构造Web应用。

轻量意味着最少侵入,使用该框架只需要很少的代码改动。

Spring起源于Rod Johnson 在“Expert One-to-One J2EE Design and Development”一书中展示的interface21框架,这一框架被开源,组成Spring框架的基础。Spring Framework 在2017年9月正式发布了 5.0 版本,截止到目前最新版本是5.3.18。

Spring Framework的重要内容有:

1)控制反转容器(IoC)

2)面向切面编程(AOP)

3)数据访问及事务管理(Spring Data)

4)Web Servlet:Spring MVC, WebSocket, SockJS, STOMP Messaging

5)框架延伸:约定大于配置(SpringBoot)、微服务(Spring Cloud)

Spring组件发布包主要包括:spring-core.jar、spring-aop.jar、spring-context.jar、spring-dao.jar、spring-orm.jar、spring-web.jar、spring-webmvc.jar。如果构建web应用全程使用Spring,建议使用spring.jar文件。

官方文档列出了相关的内容:https://docs.spring.io/spring-framework/docs/current/reference/html/

2.控制反转(IoC)

Spring框架的核心基于“控制反转(Inversion of Control,IoC)”.IoC是一种将组件依赖关系的创建和管理置于程序外部的技术。由于采用在运行时注入依赖的方式,使得IoC又被称作“依赖注入(Dependency Injection,DI)”。

Spring的DI基于两个Java核心概念:JavaBean和Interface。Spring运作得像一个容器,为应用程序的类提供所需依赖的JavaBean实例。使用DI时可以使依赖配置与代码保持隔离。

IoC的好处:

消除为了连接应用程序各个部件而编写的大量代码。

依赖外置,无需重新编译代码进行重新配置。

统一管理依赖。

面向接口编程的程序设计。

3.面向切面编程(AOP)

AOP提供了实现横切逻辑的功能,只需要编写一次,就可以把这一逻辑实施到整个应用中。

两种主流的AOP实现:静态AOP,比如AspectJ,提供了编译器的方法来构建基于AOP的逻辑;动态AOP,比如Spring,允许运行时把横切逻辑应用到任意一段代码中。

4.Spring中访问数据

Spring中对JDBC的支持使得数据访问的API更加简化。

Spring提供了统一的事务管理方案。

5.Web层的MVC

现在主流的方式是前后端分离,服务端提供Restful风格接口。

6.Spring的重要依赖

ant:ant.jar,ant-junit.jar,ant-laucher.jar。Spring采用Apache Ant作为其构建工具,运行时Ant不起作用。

aopalliance.jar,Spring AOP是基于AOP Alliance标准API实现的。

cglib:bglib-full-[version].jar,CGLIB用来生成动态代理类,供核心DI和AOP实现用。

cos.jar ,代表com.oreilly.servlet,对Servlets和基于web的应用很有用。

junit.jar,用来构建和运行测试套件。

log4j-[version].jar,使用Spring配置log4日志。

quartz.jar,支持 Spring基于Quartz调度。