前言
过年后第一次开始更新啦,这一篇主要就用来总结年后以来有意思,有用的一些信息
在Controller中的一些注解
Controller的类型
主要有两种,一种是普通的,通常是被使用服务于web页面的。默认,你的controller方法返回的是一个string串,是表示要展示哪个模板页面或者是要跳转到哪里去。
@Controller
另外一种是专门用在编写API的时候,返回一个JSON,或者是XML等等。然后方法返回的是可以是一个对象,或者是一个可以被序列化的对象。
@RestController
路由的类型
这里的路由就是指http method。(GET,POST,PUT,PATCH,DELETE)。
@GetMapping
@PostMapping
@PutMapping
@PatchMapping
@DeleteMapping
同时,在Controller上面可以加上一个@RequestMapping,可以将所有类型路由的前缀都放在上面
@RestController
@Slf4j
@Api(tags = "11. xxxxx")
@RequestMapping("/api/v1")
@RequiredArgsConstructor
public class DataController {
private final DataService dataService;
@ApiOperation("11.1 xxxx")
@GetMapping("/statistics")
public Response<DataDeployDto> deployTask(@Validated DataParam query){
log.info("data Query {}", JSONObject.toJSON(query));
return ResponseUtil.makeSuccess(dataService.deployData(query));
}
}
在Controller内的传参的注解
@ApiOperation("1.1 创建业务线")
@PostMapping("/save")
public Response save(@RequestBody @Validated CustomProductAddParam customProductAddDto) {
log.info("save() {}", JSONObject.toJSON(customProductAddDto));
customProductService.save(customProductAddDto, true);
return ResponseUtil.makeSuccess(null);
}
@RequestBody 就是要求传的数据是一个json格式的body传入的,这样前端会比较麻烦,因此在不需要的时候可以将这个注解取消掉
有@RequestBody
无@RequestBody
@Validated 就是在传参的时候需要判断验证,比如是不是为空什么(NotNull)
空指针的问题
这是个老问题了,前面什么都没传的时候,到后端的时候是变成的null,CollectionUtils.isEmpty()可以用来判断Collection是空还是null,源码实现如下
public static boolean isEmpty(Collection coll) {
return (coll == null || coll.isEmpty());
}
Int到Long的转换
Long count = (long) all.size();
强制转换int到long,注意括号里面是小写
MongoDBTemplate的查询分页
@Override
public PagerData<GreyTask> list(GreyTaskListParam param) {
Criteria criteria = new Criteria();
if (StringUtils.isNotEmpty(param.getName())) {
criteria.and("name").regex(param.getName());
}
if (StringUtils.isNotEmpty(param.getType().toString())) {
criteria.and("type").is(param.getType());
}
Query query = new Query();
query.addCriteria(criteria)
.with(new Sort(Sort.Direction.DESC, "createTime"))
.skip(param.getSkip()).limit(param.getPageSize());
List<GreyTask> all = greyTaskRepo.findAll(query);
Long count = (long) all.size();
return new PagerData<>(all, count, param.getPageSize(), param.getPageNo());
}
阿里云域名备案
会有一个验证短信,要自己上网页去验证,不要因为自己疏忽就忘了,然后就被打回来了QAQ,开始以为是什么骚扰短信呢
Kali Linux
黑客专用的系统,有空的时候可以看看,学习一下系统安全知识
GFW
自己搭的vpn突然用不了,后来发现就是被墙了(ip banned),解决方式,就是换一个ip