六十八、Spring框架入门 -- 理论

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 六十八、Spring框架入门 -- 理论

Spring官网:     http://spring.io


53.png


Spring背景


       Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,它是为了解决企业应用开发的 复杂性而创建的。Spring 的核心是控制反转(IoC)和面向切面编程(AOP)。简单来说,Spring 是一个分层的 Java SE/EE full-stack(一站式)轻量级开源框架。


Spring概述


       Spring 的主要作用就是为代码“解耦”,降低代码间的耦合度。


       根据功能的不同,可以将一个系统中的代码分为主业务逻辑与系统级业务逻辑两类。它 们各自具有鲜明的特点:主业务代码间逻辑联系紧密,有具体的专业业务应用场景,复用性 相对较低;系统级业务相对功能独立,没有具体的专业业务应用场景,主要是为主业务提供 系统级服务,如日志、安全、事务等,复用性强。 Spring 根据代码的功能特点,将降低耦合度的方式分为了两类:IoC 与 AOP。IoC 使得主 业务在相互调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了。而是 由 Spring 容器统一管理,自动“注入”。而 AOP 使得系统级服务得到了最大复用,且不用再 由程序员手工将系统级服务“混杂”到主业务逻辑中了,而是由 Spring 容器统一完成“织入”。Spring 的主要作用就是为代码“解耦”,降低代码间的耦合度。 根据功能的不同,可以将一个系统中的代码分为主业务逻辑与系统级业务逻辑两类。它们各自具有鲜明的特点:主业务代码间逻辑联系紧密,有具体的专业业务应用场景,复用性 相对较低;系统级业务相对功能独立,没有具体的专业业务应用场景,主要是为主业务提供 系统级服务,如日志、安全、事务等,复用性强。


        Spring 根据代码的功能特点,将降低耦合度的方式分为了两类:IoC 与 AOP。IoC 使得主 业务在相互调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了。而是 由 Spring 容器统一管理,自动“注入”。而 AOP 使得系统级服务得到了最大复用,且不用再 由程序员手工将系统级服务“混杂”到主业务逻辑中了,而是由 Spring 容器统一完成“织入”。


Spring体系结构



54.png

        Spring 由 20 多个模块组成,它们可以分为数据访问/集成(Data Access/Integration)、 Web、面向切面编程(AOP, Aspects)、应用服务器设备管理(Instrumentation)、消息发送 (Messaging)、核心容器(Core Container)和测试(Test)。


Spring框架解压目录及其Jar包说明


55.png

Spring4.3.6 包下载链接:https://tuomasi.lanzouy.com/iD2dd00kjk2h


密码:Spring

56.png



Spring基础Jar包下载链接:https://tuomasi.lanzouy.com/b02uszjch


密码:jars


Spring特点


1、非侵入式


       所谓非侵入式是指,Spring 框架的 API 不会在业务逻辑上出现,即业务逻辑是 POJO。由 于业务逻辑中没有 Spring 的 API,所以业务逻辑可以从 Spring 框架快速的移植到其他框架, 即与环境无关。


2、容器


       Spring 作为一个容器,可以管理对象的生命周期、对象与对象之间的依赖关系。可以通 过配置文件,来定义对象,以及设置与其他对象的依赖关系。


3、IOC


       控制反转(Inversion of Control),即创建被调用者的实例不是由调用者完成,而是由 Spring 容器完成,并注入调用者。


       当应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象 自己创建或者查找依赖对象。即,不是对象从容器中查找依赖,而是容器在对象初始化时不 等对象请求就主动将依赖传递给它。


4、AOP


       面向切面编程(AOP,Aspect Orient Programming),是一种编程思想,是面向对象编程 OOP 的补充。很多框架都实现了对 AOP 编程思想的实现。Spring 也提供了面向切面编程的 丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如日志和事务管理)进行开发。 应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责其它的系统级 关注点,例如日志或事务支持。


        我们可以把日志、安全、事务管理等服务理解成一个“切面”,那么以前这些服务一直 是直接写在业务逻辑的代码当中的,这有两点不好:首先业务逻辑不纯净;其次这些服务被 很多业务逻辑反复使用,完全可以剥离出来做到复用。那么 AOP 就是这些问题的解决方案, 可以把这些服务剥离出来形成一个“切面”,以期复用,然后将“切面”动态的“织入”到 业务逻辑中,让业务逻辑能够享受到此“切面”的服务。


Spring入门总结


1、Spring 是轻量级的开源的 JavaEE 框架


2、Spring 可以解决企业应用开发的复杂性


3、Spring 有两个核心部分:IOC 和 Aop


(1)IOC:控制反转,把创建对象过程交给 Spring 进行管理


(2)Aop:面向切面,不修改源代码进行功能增强


4、Spring 特点


(1)方便解耦,简化开发


(2)Aop 编程支持


(3)方便程序测试


(4)方便和其他框架进行整合


(5)方便进行事务操作


(6)降低 API 开发难度


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
XML 安全 Java
|
3月前
|
缓存 NoSQL Java
什么是缓存?如何在 Spring Boot 中使用缓存框架
什么是缓存?如何在 Spring Boot 中使用缓存框架
129 0
|
18天前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
108 29
|
7天前
|
XML Java 开发者
通过springboot框架创建对象(一)
在Spring Boot中,对象创建依赖于Spring框架的核心特性——控制反转(IoC)和依赖注入(DI)。IoC将对象的创建和管理交由Spring应用上下文负责,开发者只需定义依赖关系。DI通过构造函数、setter方法或字段注入实现依赖对象的传递。Spring Boot的自动配置机制基于类路径和配置文件,自动为应用程序配置Spring容器,简化开发过程。Bean的生命周期包括定义扫描、实例化、依赖注入、初始化和销毁回调,均由Spring容器管理。这些特性提高了开发效率并简化了代码维护。
|
1月前
|
开发框架 运维 监控
Spring Boot中的日志框架选择
在Spring Boot开发中,日志管理至关重要。常见的日志框架有Logback、Log4j2、Java Util Logging和Slf4j。选择合适的日志框架需考虑性能、灵活性、社区支持及集成配置。本文以Logback为例,演示了如何记录不同级别的日志消息,并强调合理配置日志框架对提升系统可靠性和开发效率的重要性。
|
2月前
|
存储 安全 Java
Spring Security 入门
Spring Security 是 Spring 框架中的安全模块,提供强大的认证和授权功能,支持防止常见攻击(如 CSRF 和会话固定攻击)。它通过过滤器链拦截请求,核心概念包括认证、授权和自定义过滤器。配置方面,涉及密码加密、用户信息服务、认证提供者及过滤器链设置。示例代码展示了如何配置登录、注销、CSRF防护等。常见问题包括循环重定向、静态资源被拦截和登录失败未返回错误信息,解决方法需确保路径正确和添加错误提示逻辑。
Spring Security 入门
|
2月前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
3月前
|
存储 Java 关系型数据库
在Spring Boot中整合Seata框架实现分布式事务
可以在 Spring Boot 中成功整合 Seata 框架,实现分布式事务的管理和处理。在实际应用中,还需要根据具体的业务需求和技术架构进行进一步的优化和调整。同时,要注意处理各种可能出现的问题,以保障分布式事务的顺利执行。
214 53
|
1月前
|
人工智能 自然语言处理 Java
Spring Cloud Alibaba AI 入门与实践
本文将介绍 Spring Cloud Alibaba AI 的基本概念、主要特性和功能,并演示如何完成一个在线聊天和在线画图的 AI 应用。
349 7
|
2月前
|
Java 开发者 Spring
理解和解决Spring框架中的事务自调用问题
事务自调用问题是由于 Spring AOP 代理机制引起的,当方法在同一个类内部自调用时,事务注解将失效。通过使用代理对象调用、将事务逻辑分离到不同类中或使用 AspectJ 模式,可以有效解决这一问题。理解和解决这一问题,对于保证 Spring 应用中的事务管理正确性至关重要。掌握这些技巧,可以提高开发效率和代码的健壮性。
128 13