当前位置: 首页 > news >正文

spring01-简介

一、什么是 Spring?

Spring 是一个开源的 Java 企业级开发框架,它帮助开发者快速、高效、整洁地构建 Web 应用、微服务和后端系统。

它的核心思想是:

“解耦合” + “高效开发” + “灵活扩展”

Spring 就像是 Java 后端开发的骨架系统,帮你搭好“地基+水电+框架”,你只需要专注写业务逻辑。

二、spring提供了什么?

Spring 本身非常庞大,但核心模块主要包括: 

模块名作用
Spring Core提供 IOC 容器(控制反转)
Spring AOP面向切面编程(如日志、权限等)
Spring MVC构建 Web 应用的框架
Spring Boot简化配置,快速启动 Spring 项目
Spring Data快速操作数据库
Spring Security提供权限和认证管理
Spring Cloud构建分布式系统、微服务架构

三、Spring 的两个核心部分:IOC 和 AOP

3-1、IOC(控制反转,Inversion of Control)

  • 传统方式下,对象由程序员使用 new 手动创建和管理。

  • 在 Spring 中,对象的创建、依赖关系由 Spring 容器统一管理

把对象的控制权“反转”给 Spring,你只需要声明依赖,Spring 帮你注入

例子:

@Autowired
UserService userService; // Spring 自动创建并注入

3-2、AOP(面向切面编程,Aspect Oriented Programming)

  • 把通用功能(如日志、事务、安全等)从核心业务逻辑中抽离出来。

  • 不修改源代码,也能“增强”原有功能,类似于“给代码加外挂”。

横向切入功能,模块之间解耦,比如:方法执行前,自动打印日志、执行后,自动记录性能。

例子:

@Before("execution(* com.example.service.*.*(..))")
public void logBefore(JoinPoint joinPoint) {System.out.println("调用方法前日志记录:" + joinPoint.getSignature().getName());
}

四、Spring 的主要特点

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

  • 通过 IOC 管理对象,组件之间只需声明依赖,不再直接 new 对象。

  • 降低模块间耦合度,提高系统可维护性和扩展性。

(2)AOP 编程支持

  • 可以轻松实现日志、权限校验、事务控制等通用功能的集中管理。

  • 不需修改业务类代码,维护更方便。

(3)方便程序测试

  • 通过依赖注入(DI),可以轻松替换实际对象为 Mock 对象,便于单元测试。

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

  • Spring 可以和 JDBC、Hibernate、MyBatis、Struts、Quartz 等多种第三方框架无缝集成。

  • 提供大量预置配置,节省集成时间。

(5)方便进行事务操作

  • 提供声明式事务管理(基于注解或配置)。

  • 只需一个注解 @Transactional 即可完成事务控制。

例子:

@Transactional
public void transfer(Account from, Account to, double amount) {// 转账逻辑
}

(6)降低 API 开发难度

  • Spring Boot + Spring MVC 提供简洁易用的 REST API 构建方式。

  • 使用注解快速开发、简化配置、减少样板代码。

例子:

@RestController
public class HelloController {@GetMapping("/hello")public String hello() {return "Hello Spring!";}
}

总结

内容
核心机制IOC 控制对象创建,AOP 实现功能增强
核心优势解耦、简化开发、统一事务管理、易集成

五、spring 6 VS spring 5

spring 5.xspring 6.x
JDK版本>= 1.8>= 17
Tomcat版本9.x10.x
Annotation包javax.annotationjakarta.annotation
Servlet包javax.servletjakarta.servlet
JMS包javax.jmsjakarta.jms
JavaMail包javax.mailjakarta.mail
http://www.lqws.cn/news/511723.html

相关文章:

  • “苏超”拉动周末消费,抖音生活服务:比赛城市迎来普遍消费上涨
  • 鸿蒙 FolderStack 组件全解析:折叠屏悬停布局开发指南
  • 【源码】Reactive 源码
  • c++ 空指针,悬挂指针(悬空指针),野指针
  • 总结汇报思路
  • 重点解析(软件工程)
  • 使用markRaw实例化echarts对象
  • RAG实战 第三章:知识库构建与管理
  • OSS安全合规实战:金融行业敏感数据加密+KMS自动轮转策略(满足等保2.0三级要求)
  • 宝塔服务器调优工具 1.1(Opcache优化)
  • 跟着chrome面板优化页面性能
  • 中断控制与实现
  • 《C++》命名空间简述
  • AutoGPT,自主完成复杂任务
  • 安卓9.0系统修改定制化____安卓9.0修改 默认开启开发者选项与usb调试的操作步骤解析 十一
  • 2025.6.24总结
  • # Python中等于号的使用
  • 创建首个 Spring Boot 登录项目
  • Linux零基础快速入门到精通
  • 大模型本地部署,拥有属于自己的ChatGpt
  • Vue 英雄列表搜索与排序功能实现
  • Verilog基础:编译指令`default_nettype
  • Harmony状态管理@Event
  • ubuntu16编译paho.mqtt.c 及 paho.mqtt.cpp编译问题
  • 屠龙刀策略
  • Web攻防-CSRF跨站请求伪造Referer同源Token校验复用删除置空联动上传或XSS
  • 统计学纯基础(1)
  • C++ 快速回顾(一)
  • 学习记录:DAY33
  • linux操作系统的软件架构分析