【Spring框架 三】

server/2024/12/22 11:55:38/

Spring框架 三

  • Spring
    • Web开发框架
      • 框架概述
      • 核心组件
      • RESTful Web Services
      • 异常处理
      • 过滤器和拦截器
    • 总结

Spring

Spring框架是一个开源的Java应用程序框架,它提供了一种轻量级的解决方案,用于开发企业级Java应用程序。Spring框架的核心原则是依赖注入(DI)和面向切面编程(AOP),它使得开发人员可以更加专注于业务逻辑的开发,而无需过多关注底层的技术细节。

Spring框架提供了一系列功能模块,包括:

  1. IOC容器:IOC(Inversion of Control)是Spring框架的核心概念,它通过控制对象的创建和依赖关系的管理,实现了解耦和松耦合的开发。Spring的IOC容器负责管理Java对象的生命周期和依赖关系,并通过依赖注入将依赖关系注入到对象中。

  2. AOP框架:AOP(Aspect-Oriented Programming)是一种编程范式,它通过将横切关注点(例如日志记录、事务管理等)从业务逻辑中分离出来,提供了一种更加模块化和可维护的开发方式。Spring的AOP框架可以将横切关注点织入到应用程序中,并通过提供切面(Aspect)和通知(Advice)来实现。

  3. 数据访问框架:Spring提供了一系列的数据访问模块,包括JDBC、ORM(Object-Relational Mapping)和事务管理等。这些模块可以帮助开发人员简化数据库访问的代码,并提供了对各种数据库的支持。

  4. Web开发框架:Spring提供了一系列的Web开发模块,包括MVC(Model-View-Controller)模式的实现、RESTful Web服务的支持、文件上传等。这些模块可以帮助开发人员快速地构建灵活、可扩展的Web应用程序。

  5. 测试框架:Spring提供了一系列的测试模块,包括对JUnit和Mock对象的支持。这些模块可以帮助开发人员编写单元测试和集成测试,以确保应用程序的质量和稳定性。

在Spring框架一中,我们主要介绍了IOC容器和AOP框架以及数据访问框架,这次我们简要介绍一下Web开发框架。

Web开发框架

Spring Web 框架是 Spring 框架的一部分,主要用于构建基于 HTTP 的应用程序,特别是 Web 应用程序和 RESTful 服务。它是 Spring MVC(Model-View-Controller)模式的实现,并且是构建现代、响应式和可维护的 Web 应用的核心组件之一。

框架概述

Spring Web 框架概述

  1. 定义:Spring Web 框架是一个用于开发 Web 应用程序的轻量级框架,它简化了创建复杂的 Web 应用程序的过程。
  2. 特点:
    • MVC 架构:遵循模型-视图-控制器(MVC)设计模式,使得应用程序的不同方面可以解耦,便于测试和维护。
    • 非侵入性:通过依赖注入(DI)和面向接口编程,减少了代码之间的耦合度。
    • 灵活性:支持多种视图技术(如 JSP、Thymeleaf、FreeMarker 等),并且可以轻松集成其他第三方库和技术。

核心组件

  1. DispatcherServlet
    DispatcherServlet 是 Spring Web 框架的前端控制器,负责接收所有的 HTTP 请求,并将其分发给适当的处理器(Handler)。它还负责处理视图解析、异常处理等任务。在 Spring Boot 中,DispatcherServlet 的配置通常是自动化的,开发者不需要手动配置。

要使用DispatcherServlet需要引入相应的依赖

java"><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup>
</servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>/</url-pattern>
</servlet-mapping>
  1. 控制器(Controller)
    控制器负责处理特定类型的请求。在 Spring 中,控制器类通常使用 @Controller 或 @RestController 注解标记,并且方法可以通过 @RequestMapping 及其变体(如 @GetMapping, @PostMapping 等)来映射 URL 路径到具体的处理逻辑。
java">@RestController
@RequestMapping("/api")
public class MyController {@GetMapping("/hello")public String sayHello() {return "Hello, World!";}
}

3 模型(Model)
模型代表应用的数据层,通常是由业务对象组成的。控制器方法可以通过方法参数或返回值来传递模型数据。

4 视图(View)
视图负责将模型数据呈现给用户。Spring 支持多种视图技术,如 JSP、Thymeleaf、FreeMarker 和 Velocity 等。视图解析器(View Resolver)负责选择正确的视图技术并将模型数据传递给视图进行渲染。

java">@Controller
@RequestMapping("/web")
public class WebController {@GetMapping("/home")public String home(Model model) {model.addAttribute("message", "Welcome to the Home Page!");return "home"; // 返回视图名称}
}

RESTful Web Services

Spring Web 框架特别适合构建 RESTful Web 服务。@RestController 和 @RequestMapping 注解使得创建 RESTful API 非常简单。此外,Spring 提供了 HttpMessageConverter 接口,它可以自动将 Java 对象转换为 JSON 或 XML 格式的响应体,反之亦然。

java">@RestController
@RequestMapping("/api/users")
public class UserController {@Autowiredprivate UserService userService;@GetMappingpublic List<User> getAllUsers() {return userService.getAllUsers();}@PostMappingpublic User createUser(@RequestBody User user) {return userService.saveUser(user);}
}

异常处理

Spring Web 提供了强大的异常处理机制,可以帮助开发者优雅地处理错误情况。你可以使用 @ExceptionHandler 注解的方法来捕获并处理特定类型的异常,或者使用全局异常处理器 @ControllerAdvice 来集中管理整个应用中的异常处理逻辑。

java">@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(ResourceNotFoundException.class)public ResponseEntity<?> handleResourceNotFoundException(ResourceNotFoundException ex) {ErrorDetails errorDetails = new ErrorDetails(new Date(), ex.getMessage(), "Resource Not Found");return new ResponseEntity<>(errorDetails, HttpStatus.NOT_FOUND);}
}

过滤器和拦截器

Spring Web 还提供了过滤器(Filter)和拦截器(Interceptor)机制,允许你在请求到达控制器之前或之后执行某些操作,例如日志记录、身份验证或性能监控。

java">@Component
public class LoggingInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("Request received: " + request.getRequestURI());return true; // 继续处理请求}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("Request completed: " + request.getRequestURI());}
}

总结

Spring Web 框架是构建现代 Java Web 应用的重要工具,它不仅简化了 Web 应用的开发过程,还提供了丰富的特性和良好的扩展性。理解 Spring Web 框架的核心概念和组件,可以帮助开发者更有效地构建高效、可维护的应用程序。


http://www.ppmy.cn/server/152223.html

相关文章

Scala快速入门+示例

目录 定义和描述idea基础关键字变量、常量输出数据类型类型转换 函数式编程函数和方法的区别定义示例有参带返回值有参没有返回值 注意点 面向对象object和class的区别对象的属性 快速上手使用版 定义和描述 基于JVM的语言&#xff0c;支持面向对象、面向函数&#xff0c;支持…

高校教师成果管理小程序的设计与实现springboot+论文源码调试讲解

第2章 开发环境与技术 基于web的高校教师成果管理的编码实现需要搭建一定的环境和使用相应的技术&#xff0c;接下来的内容就是对基于web的高校教师成果管理用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的&#xff0c;是经常…

简单介绍一下Linux的常用命令

一、文件和目录操作命令 ls&#xff08;list&#xff09;命令 功能&#xff1a;用于列出目录的内容&#xff0c;包括文件和子目录的名称、权限、所有者、大小、修改时间等信息。 示例&#xff1a; ls&#xff1a;简单列出当前目录下的非隐藏文件和目录。 ls -l&#xff1a;以…

Spring MVC 中,处理异常的 6种方式

异常处理是每个 Java程序员需要面对的一个问题&#xff0c;在Spring中&#xff0c;提供了多种机制来处理控制器抛出的异常&#xff0c;确保应用程序在面对各种错误情况时能够优雅地响应。这篇文章&#xff0c;我们来详细分析Spring MVC中&#xff0c;几种优雅处理异常的方式。 …

前端零基础学习Day-Eight

CSS字体和文本样式 CSS文字样式 字体&#xff1a;font-family 语法&#xff1a;font-family:[字体1][,字体2][,…] p{font-family:“微软雅黑”,“宋体”,“黑体”;} 含空格字体名和中文&#xff0c;用英文引号括起 属性值&#xff1a;具体字体名&#xff0c;字体集 字体集&…

如何在 Debian 12 上安装和使用 Vuls 漏洞扫描器

简介 Vuls 是一款无代理、免费且开源的 Linux 和 FreeBSD 漏洞扫描器。Vuls 主要用 Go 语言编写&#xff0c;可以在任何地方运行。你可以在云端、本地和 Docker 上运行 Vuls&#xff0c;并且它支持主要的发行版。Vuls 提供高质量的扫描&#xff0c;支持多个漏洞数据库&#xf…

Pytorch | 从零构建ResNet对CIFAR10进行分类

Pytorch | 从零构建ResNet对CIFAR10进行分类 CIFAR10数据集ResNet核心思想网络结构创新点优点应用 ResNet结构代码详解结构代码代码详解BasicBlock 类ResNet 类ResNet18、ResNet34、ResNet50、ResNet101、ResNet152函数 训练过程和测试结果代码汇总resnet.pytrain.pytest.py 前…

uniApp使用腾讯地图提示未添加maps模块

uniApp使用腾讯地图&#xff0c;打包提示未添加maps模块解决方案 这是报错信息&#xff0c;在标准基座运行的时候是没问题的&#xff0c;但是打包后会提示未添加&#xff0c;可以通过在mainfest里面把地图插件上腾讯地图的key更换高德地图的key&#xff0c;定位服务可以继续用腾…