springboot引入视图解析和springmvc引入视图解析的不同

本文比较了SpringBoot和SpringMVC在视图解析方面的特点,SpringBoot通过自动配置简化了配置过程,支持多种默认视图技术;而SpringMVC则提供更大的灵活性,但需更多手动配置。
摘要由CSDN通过智能技术生成

Spring Boot和Spring MVC都是基于Spring框架的技术,它们在处理视图解析方面有一些相似之处,但也有不同的特点和简化的步骤。

 

### Spring MVC中的视图解析

 

在Spring MVC中,视图解析通常是通过配置一个或多个`ViewResolver`来完成的。`ViewResolver`的目的是将控制器返回的逻辑视图名称解析为实际的视图页面。例如,你可以使用`InternalResourceViewResolver`来解析JSP页面。

 

**例子:**

 

1. **添加依赖** - 在`pom.xml`中添加Spring MVC和相关视图技术的依赖,如JSP。

 

   ```xml

   <dependency>

       <groupId>org.springframework</groupId>

       <artifactId>spring-webmvc</artifactId>

       <version>5.3.10</version>

   </dependency>

   <dependency>

       <groupId>javax.servlet</groupId>

       <artifactId>jstl</artifactId>

       <version>1.2</version>

   </dependency>

   ```

 

2. **配置视图解析器** - 在Spring配置文件中配置`InternalResourceViewResolver`。

 

   ```xml

   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

       <property name="prefix" value="/WEB-INF/views/"/>

       <property name="suffix" value=".jsp"/>

   </bean>

   ```

 

3. **创建控制器** - 创建一个控制器并返回逻辑视图名称。

 

   ```java

   @Controller

   public class MyController {

       @RequestMapping("/greeting")

       public String greeting(Model model) {

           model.addAttribute("message", "Hello, World!");

           return "greeting";

       }

   }

   ```

 

4. **创建视图页面** - 在`/WEB-INF/views/`目录下创建`greeting.jsp`页面。

 

   ```jsp

   <html>

       <body>

           <h1>${message}</h1>

       </body>

   </html>

   ```

 

### Spring Boot中的视图解析

 

Spring Boot提供了更多的开箱即用的特性,包括对视图技术的自动配置。例如,如果你的项目中包含了Thymeleaf或FreeMarker模板,Spring Boot会自动配置相应的视图解析器。

 

**例子:**

 

1. **添加依赖** - 在`pom.xml`中添加Spring Boot和Thymeleaf的依赖。

 

   ```xml

   <dependency>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-web</artifactId>

   </dependency>

   <dependency>

       <groupId>org.thymeleaf</groupId>

       <artifactId>thymeleaf-spring5</artifactId>

   </dependency>

   ```

 

2. **创建控制器** - 创建一个控制器并返回逻辑视图名称。

 

   ```java

   @Controller

   public class MyController {

       @GetMapping("/greeting")

       public String greeting(Model model) {

           model.addAttribute("message", "Hello, World!");

           return "greeting";

       }

   }

   ```

 

3. **创建视图页面** - 在`src/main/resources/templates`目录下创建`greeting.html`页面。

 

   ```html

   <!DOCTYPE html>

   <html xmlns:th="http://www.thymeleaf.org">

       <body>

           <h1 th:text="${message}"></h1>

       </body>

   </html>

   ```

 

### 区别

 

- **配置简化** - Spring Boot通过自动配置大大简化了视图解析的配置。在Spring Boot中,你通常不需要显式配置`ViewResolver`或`ViewFactoryBean`,因为Spring Boot会根据你的项目依赖自动配置。

- **默认视图技术** - Spring Boot有一套默认的视图技术,如Thymeleaf、FreeMarker、Mustache等。而Spring MVC需要你显式地配置和选择视图技术。

- **启动类** - Spring Boot使用`@SpringBootApplication`注解的启动类来启动应用,而Spring MVC通常需要一个XML配置文件或`@Configuration`注解的类来启动。

- **内嵌服务器** - Spring Boot内置了Tomcat、Jetty或Undertow作为默认的Servlet容器,无需额外配置。而在Spring MVC中,你可能需要单独添加并配置Servlet容器。

 

总的来说,Spring Boot在视图解析方面提供了更多的便利性和开箱即用的特性,减少了开发者的配置负担。而Spring MVC则提供了更多的灵活性和控制力,但相应地需要更多的配置工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tin9898

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值