Spring介绍

1. 1 简介
  • Spring是一个轻量级的控制反转(IOC)和面向切面编程的框架(框架,即模板)

  • Spring框架是由于软件开发复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。

  • Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

  • 2002年,首次推出spring框架的雏形,interface21框架https://www.interface21.io/

  • spring框架以interface21框架为基础,重新设计,丰富,在2004.3.24日发布1.0正式版

  • Rod Johnson,spring framework 创始人,学者。是悉尼大学的音乐学博士。

  • Spring 框架是一个分层的、面向切面的 Java 应用程序的一站式轻量级解决方案,它是 Spring 技术栈的核心和基础,是为了解决企业级应用开发的复杂性而创建的。简言之:使现有技术更加容易使用,并对其他的开源框架的使用提供支持。如:SSH(全自动框架)SSM(半自动)框架都以spring为中心进行整合。

  • 官网:https://spring.io/projects/spring-framework

  • 官方下载地址:https://repo.spring.io/ui/native/release/org/springframework/

  • github地址:https://github.com/spring-projects/spring-framework

  • 使用时需要引入依赖

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.19</version>
</dependency>
<dependency>
    <groupId>springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>1.2.6</version>
</dependency>
1.2 优点
  • spring是一个开源免费的框架(容器)
  • spring是轻量级的非入侵式的框架

引入jar包对现有代码没有影响反而更容易

Spring应用中的对象不依赖于Spring的特定类

基于spring应用的开发中的对象可以不依赖于spring的API

  • 控制反转(IOC)和面向切面编程AOP
  • 支持声明式事务的处理,对框架整合的支持,方便程序的测试
  • 方便解耦,简化开发,降低Java EE API的使用难度并且Java Spring的源码是JAVA经典学习范例
1.3 缺点
  • 软件系统中由于引入了第三方IOC容器,生成对象的步骤变得有些复杂,本来是两者之间的事情,又凭空多出一道手续,所以,我们在刚开始使用IOC框 架的时候,会感觉系统变得不太直观。所以,引入了一个全新的框架,就会增加团队成员学习和认识的培训成本,并且在以后的运行维护中,还得让新加入者具备同 样的知识体系。
  • 由于IOC容器生成对象是通过反射方式,在运行效率上有一定的损耗。如果你要追求运行效率的话,就必须对此进行权衡。
  • 具体到IOC框架产品(比如:Spring)来讲,需要进行大量的配制工作,比较繁琐,对于一些小的项目而言,客观上也可能加大一些工作成本。
  • IOC框架产品本身的成熟度需要进行评估,如果引入一个不成熟的IOC框架产品,那么会影响到整个项目,所以这也是一个隐性的风险。
  • 发展太久后,违背了原来的理念,配置十分繁琐,称为:配置地狱
1.4 组成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7aAifDiF-1656508231852)(../typora-user-images/image-20220621103616026.png)]

  • Spring是分层的JavaSE/EE full-stack(一站式) 轻量级开源框架,Spring框架是一个分层架构,由7 个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式。

核心容器

核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

Spring 上下文

Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。

Spring AOP

通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

Spring DAO

JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。

Spring ORM

Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。

Spring Web 模块

Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

Spring MVC 框架

MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

框架核心

控制反转

当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring)。

依赖注入

spring主动创建被调用类的对象,然后把这个对象注入到我们自己的类中,使得我们可以使用它。利用set方法进行注入

不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务,Spring框架中是IOC容器负责将这些联系在一起。

1.5 spring拓展
  • Spring Boot构建工程

是一个快速开发的脚手架,是构建基于spring应用程序的起点,用最少的spring前期配置来启动并运行

基于Spring Boot可以快速开发单个微服务

约定大于配置

spring和springmvc是Spring Boot基石

  • Spring Cloud 协调,连接

Spring Cloud是基于Spring Boot实现的,微服务多了才用它协调

本专栏下一篇:Spring IOC理论
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security是一个基于Spring框架的安全性解决方案,用于保护Java应用程序的安全性。它提供了一套全面的安全性功能,包括身份验证、授权、密码管理和会话管理等。 Spring Security的主要特点包括: 1. 身份验证(Authentication):Spring Security支持多种身份验证方式,包括基于表单、基于HTTP基本认证、基于LDAP等。它还支持自定义身份验证方式。 2. 授权(Authorization):Spring Security提供了细粒度的授权机制,可以通过注解或配置文件来定义访问控制规则。它支持基于角色(Role)和基于权限(Permission)的授权方式。 3. 密码管理(Password Management):Spring Security提供了安全的密码存储和验证机制,可以对密码进行加密和解密操作,以保护用户密码的安全性。 4. 会话管理(Session Management):Spring Security支持会话管理功能,可以管理用户的会话状态,包括会话超时、并发登录控制等。 5. CSRF防护(CSRF Protection):Spring Security提供了跨站请求伪造(CSRF)防护功能,可以防止恶意攻击者利用用户的身份进行非法操作。 6. 记住我(Remember Me):Spring Security支持“记住我”功能,可以在用户下次访问时自动登录,提高用户体验。 7. 安全事件监听(Security Event Listeners):Spring Security提供了安全事件监听机制,可以监听用户登录、注销等安全事件,并进行相应的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值