Spring框架主要内容
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调度。