当前位置: 首页> 文旅> 旅游 > 成都网站建设 公司_什么是网站建设?_百度总部投诉电话_b2b和b2c是什么意思

成都网站建设 公司_什么是网站建设?_百度总部投诉电话_b2b和b2c是什么意思

时间:2025/7/11 0:28:38来源:https://blog.csdn.net/qq_22910257/article/details/147144920 浏览次数:0次
成都网站建设 公司_什么是网站建设?_百度总部投诉电话_b2b和b2c是什么意思

五、Spring Boot 与 Web 开发

1. 简介

Spring Boot 是基于 Spring Framework 开发的一个框架,旨在简化配置,快速构建应用。它内嵌 Tomcat 等 servlet 容器,支持 RESTful API 开发,处理静态资源,以及集成视图层技术如 Thymeleaf 和 Freemarker。

2. Spring MVC 集成

Spring MVC 是 Spring Framework 中用于构建 Web 应用的核心组件。Spring Boot 通过自动配置和内置 Servlet 容器,显著简化了 Spring MVC 的配置和使用流程。以下是关于 Spring MVC 在 Spring Boot 中的集成的详细讲解。


2.1. 内嵌 Servlet 容器

Spring Boot 内置了多种 Servlet 容器,包括 Tomcat、Jetty 和 Undertow,允许开发者无需外部容器即可运行 Web 应用。

1. 内置 Tomcat

Tomcat 是 Spring Boot 的默认内嵌 Servlet 容器。通过在 pom.xml 中添加 spring-boot-starter-web 依赖,应用会自动配置 Tomcat 容器。

示例:

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId>  
</dependency>  
2. 切换到 Jetty 或 Undertow

如果需要使用其他 Servlet 容器,可以通过修改 pom.xml 文件,排除默认的 Tomcat 依赖,并添加所需容器的依赖。

示例:

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId>  <exclusions>  <exclusion>  <groupId>org.apache.tomcat.embed</groupId>  <artifactId>tomcat-embed-core</artifactId>  </exclusion>  </exclusions>  
</dependency>  
<dependency>  <groupId>org.eclipse.jetty</groupId>  <artifactId>jetty-servlet</artifactId>  
</dependency>  
3. 启动应用

通过主应用类的 @SpringBootApplication 注解和 SpringApplication.run() 方法,启动应用时,内嵌的 Servlet 容器会自动启动并运行。

示例:

@SpringBootApplication  
public class WebApplication {  public static void main(String[] args) {  SpringApplication.run(WebApplication.class, args);  }  
}  

2.2. 默认配置

Spring Boot 提供了丰富的默认配置,简化了 Spring MVC 的使用。

1. 自动配置 DispatcherServlet

Spring Boot 自动配置 DispatcherServlet,并将其映射到 / 路径,处理所有 HTTP 请求。这种默认配置无需手动设置,减少了开发者的工作量。

2.默认的视图配置

Spring Boot 默认支持基于 @RestController 的 RESTful API 开发,返回 JSON 数据。对于需要视图层的应用,可以通过配置视图解析器(如 Thymeleaf 或 Freemarker)来实现。

3. 静态资源处理

默认情况下,Spring Boot 可以处理位于 src/main/resources/static 目录下的静态资源文件,如 HTML、CSS、JavaScript 和图片。这些资源可以通过相应的 URL 访问,无需额外配置。


2.3. 启用 Spring MVC

要使用 Spring MVC 的完整功能,需要在项目中添加相应的依赖并进行配置。

1. 添加 Spring MVC 依赖

通过在 pom.xml 中添加 spring-boot-starter-web 依赖,启用 Spring MVC 功能。这个依赖包含了 Spring MVC 及其相关组件,如 DispatcherServlet 和视图解析器。

示例:

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId>  
</dependency>  
2. 创建 Spring MVC 控制器

使用 @Controller@RequestMapping 注解创建控制器,处理 HTTP 请求并返回视图或数据。

示例:

@Controller  
@RequestMapping("/users")  
public class UserController {  @Autowired  private UserService userService;  @GetMapping  public String getAllUsers(Model model) {  List<User> users = userService.getAllUsers();  model.addAttribute("users", users);  return "users";  }  
}  
3. 配置视图解析器

application.properties 文件中配置视图解析器,指定视图的前缀和后缀。

示例:

spring.mvc.view.prefix=/WEB-INF/views/  
spring.mvc.view.suffix=.jsp  

2.4. 自定义配置

Spring Boot 允许开发者自定义 Spring MVC 的配置,以满足特定需求。

1. 使用 WebMvcConfigurer

通过实现 WebMvcConfigurer 接口,自定义 MVC 配置,如资源处理和默认 servlet。

示例:

@Configuration  
@EnableWebMvc  
public class WebConfig implements WebMvcConfigurer {  @Override  public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {  configurer.enable();  }  @Override  public void addResourceHandlers(ResourceHandlerRegistry registry) {  registry.addResourceHandler("/static/**")  .addResourceLocations("classpath:/static/");  }  
}  
2. 配置 DispatcherServlet

application.properties 中配置 DispatcherServlet 的映射路径,自定义其处理请求的范围。

示例:

spring.mvc.servlet.path=/api  

2.5. 高级功能

1. 国际化

通过 MessageSourceLocaleResolver 实现国际化,使应用支持多语言。

示例:

@Bean  
public MessageSource messageSource() {  ResourceBundleMessageSource source = new ResourceBundleMessageSource();  source.setBasename("messages");  return source;  
}  
2. 拦截器

通过 HandlerInterceptor 实现拦截功能,执行请求前后的逻辑。

示例:

public class LoggingInterceptor implements HandlerInterceptor {  @Override  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {  System.out.println("Before handling the request");  return true;  }  @Override  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {  System.out.println("After handling the request");  }  
}  
3. 异常处理

通过 @ExceptionHandler@ControllerAdvice 处理全局异常,统一返回错误响应。

示例:

@ControllerAdvice  
public class GlobalExceptionHandler {  @ExceptionHandler(value = Exception.class)  public ResponseEntity<?
关键字:成都网站建设 公司_什么是网站建设?_百度总部投诉电话_b2b和b2c是什么意思

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: