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