【Spring框架 三】

embedded/2024/12/22 9:51: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/embedded/147781.html

相关文章

电商后台革命:RPA 自动化商品信息录入与更新【52rpa.com】

在当今快节奏的电商时代&#xff0c;高效的后台管理是电商企业成功的关键之一。随着科技的不断进步&#xff0c;机器人流程自动化&#xff08;RPA&#xff09;技术正逐渐成为电商后台管理的强大助力&#xff0c;尤其是在商品信息录入与更新方面&#xff0c;发挥着巨大的作用。而…

电商新品发布自动化:RPA 确保信息一致性与及时性【rap.top】

一、教学目标 让学员了解电商新品发布过程中的挑战以及 RPA 的概念和优势。掌握 RPA 在电商新品发布中确保信息一致性与及时性的方法和流程。培养学员运用 RPA 解决实际问题的能力。 二、教学重难点 重点 RPA 在电商新品发布中的应用场景。实现信息一致性与及时性的具体策略…

【蓝桥杯】43696.小数第n位

小数第n位 题目描述 我们知道&#xff0c;整数做除法时&#xff0c;有时得到有限小数&#xff0c;有时得到无限循环小数。如果我们把有限小数的末尾加上无限多个0&#xff0c;那么有限小数和无限小数就都有了统一的形式。 本题的任务是:在上面的约定下&#xff0c;求整数除法…

C05S09-Keepalive服务架设

一、Keepalive 1. Keepalive概述 代理服务器和调度器都是单点模式&#xff0c;Keepalive是一种实现LVS调度器实现高可用集群的架设&#xff0c;以提高节点的冗余和容错。 Keepalive是一种基于VRRP协议实现的调度器高可用方案&#xff0c;为了实现LVS的集群而设计开发&#x…

Spark优化----Spark 数据倾斜

目录 数据倾斜的表现&#xff1a; 定位数据倾斜问题&#xff1a; 解决方案一&#xff1a;聚合原数据 避免 shuffle 过程 缩小 key 粒度&#xff08;增大数据倾斜可能性&#xff0c;降低每个 task 的数据量&#xff09; 增大 key 粒度&#xff08;减小数据倾斜可能性&#xff0c…

亚矩阵云手机

亚矩阵云手机是一个集成了云计算、大数据、人工智能和边缘计算等先进技术的云平台&#xff0c;它通过ARM虚拟化技术在云端运行手机应用&#xff0c;提供了全面、高效且稳定的服务。以下是对亚矩阵云手机的详细解析: 技术基础与架构 1.ARM虚拟化技术:亚矩阵云手机基于ARM服务器和…

npm、yarn、pnpm 设置最新国内镜像源(附官方镜像源和最新阿里源)

npm 查询源 BASH npm get registry 设置源 BASH # 国内 淘宝 镜像源 npm config set registry https://registry.npmmirror.com/ # 官方镜像源 npm config set registry https://registry.npmjs.org/ pnpm pnpm 的镜像源默认 查询源 BASH pnpm get registry 设置源 BASH # 国内…

IDEA 打开 maven 的 settings.xml 文件

右键 pom.xml -> 选中 Maven -> 选择 open settings.xml