小知识点
- Map有getOrDefault("1","0");取不到取默认值
- 两个不同对象,属性相同进行赋值转换,使用modelMapper
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>1.1.0</version>
</dependency>
- controller请求中BindingResult bindingResult通过bindingResult.hasErrors()判断是否报错,下列模板代码可以学习
/**
* 新增房源接口
* @param houseForm
* @param bindingResult
* @return
*/
@PostMapping("admin/add/house")
@ResponseBody
public ApiResponse addHouse(@Valid @ModelAttribute("form-house-add") HouseForm houseForm, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return new ApiResponse(HttpStatus.BAD_REQUEST.value(), bindingResult.getAllErrors().get(0).getDefaultMessage(), null);
}
if (houseForm.getPhotos() == null || houseForm.getCover() == null) {
return ApiResponse.ofMessage(HttpStatus.BAD_REQUEST.value(), "必须上传图片");
}
Map<SupportAddress.Level, SupportAddressDTO> addressMap = addressService.findCityAndRegion(houseForm.getCityEnName(), houseForm.getRegionEnName());
if (addressMap.keySet().size() != 2) {
return ApiResponse.ofStatus(ApiResponse.Status.NOT_VALID_PARAM);
}
ServiceResult<HouseDTO> result = houseService.save(houseForm);
if (result.isSuccess()) {
return ApiResponse.ofSuccess(result.getResult());
}
return ApiResponse.ofSuccess(ApiResponse.Status.NOT_VALID_PARAM);
}
@NotNull(message = "大标题不允许为空!")
@Size(min = 1, max = 30, message = "标题长度必须在1~30之间")
private String title;
@NotNull(message = "必须填写卧室数量")
@Min(value = 1, message = "非法的卧室数量")
private Integer room;
@NotNull(message = "必须选中一个租赁方式")
@Min(value = 0)
@Max(value = 1)
private Integer rentWay;
@Size(max = 255)
private String description;
- redis管理session配置
@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400)
public class RedisSessionConfig {
@Bean
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
return new StringRedisTemplate(factory);
}
}
<!-- redis session依赖 -->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
# session会话存储类型
spring.session.store-type=redis