spring全家桶系列之spring boot 2.2-Spring MVC(三)

spring mvc

HttpMessageConverters


  • Spring MVC使用该HttpMessageConverter接口来转换HTTP请求和响应。明智的默认设置包含在开箱即用中。例如,对象可以自动转换为JSON(通过使用Jackson库)或XML(如果可用,则使用Jackson XML扩展,或者如果Jackson XML扩展不可用,则使用JAXB)。默认情况下,字符串是以编码的UTF-8
  • 如果需要添加或自定义转换器,可以使用Spring Boot的 HttpMessageConverters类,如下面的清单所示:
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.*;
import org.springframework.http.converter.*;

@Configuration
public class MyConfiguration {

    @Bean
    public HttpMessageConverters customConverters() {
        HttpMessageConverter<?> additional = ...
        HttpMessageConverter<?> another = ...
        return new HttpMessageConverters(additional, another);
    }

}

自定义json序列化反序列化


@JsonComponent
public class Example {

    public static class Serializer extends JsonSerializer<SomeObject> {
        // ...
    }

    public static class Deserializer extends JsonDeserializer<SomeObject> {
        // ...
    }

}

静态文件添加哈希值 


注意如果你使用JBoss,你需要声明webjars-locator-jboss-vfs 依赖而不是webjars-locator-core。否则,所有Webjars都会解析为 404
  • 要使用缓存清除,以下配置会为所有静态资源配置缓存清除解决方案,
  • 从而有效的在URL中添加内容哈希 <link href="/css/spring-2a2d595e6ed9a0b24f027f2b63b134d6.css"/> 
  • 设置hash值url可以快速1、添加历史记录  2、记录滚动条位置
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**

测试


spring boot 2.2 默认采用junit5,使用junit4移除exclusion即可

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
  • 测试异常 

         找不到主类配置classes,端口占用配置webEnviroment 随机端口

    @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
  • junit4 
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserTest{
    
    @Autowired
    private UserService userService;

    @Test
    public void result() {
        userService.findAll();
    }
  • junit5 

@SpringBootTest
public class UserTest{
    
    @Autowired
    private UserService userService;

    @Test
    public void result() {
        userService.findAll();
    }

CORS支持


跨源资源共享 (CORS)是大多数浏览器实现 的W3C规范,允许您以灵活的方式指定授权何种跨域请求,而不是使用一些安全性较低且功能较弱的方法,如IFRAME或JSONP。 从版本4.2开始,Spring MVC 支持CORS。

@Configuration
public class MyConfiguration {

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/api/**");
            }
        };
    }
}

动态url


@RestController
@RequestMapping("user")
public class MyRestController {

 @GetMapping("{type}")
    public User getUser(@PathVariable String type) {
        
    }

}

下一篇: Spring WebFlux

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值