![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 67
阿璐4r
坐在马桶上写代码的阿璐4r
展开
-
「小技巧」通过 ⌘ + C/V 上传文件到服务器
通过⌘ + C上传文件到服务器原创 2022-08-27 11:43:04 · 405 阅读 · 1 评论 -
日志记录的坑
日志框架众多,不同的类库可能会使用不同的日志框架,如何兼容是一个问题。配置复杂且容易出错。日志配置文件通常很复杂,因此有些开发同学会从其他项目或者网络上复制一份配置文件,但却不知道如何修改,甚至是胡乱修改,造成很多问题。比如,重复记录日志的问题、同步日志的性能问题、异步记录的错误配置问题。日志记录本身就有些误区,比如没考虑到日志内容获取的代价、胡乱使用日志级别等。1.SLF4J提供了统一的日志门面 API,即图中紫色部分,实现了中立的日志记录 API。用来把各种日志框架的 API 桥接到 S.原创 2022-01-20 10:28:32 · 597 阅读 · 0 评论 -
对于异常处理的注意事项
大多数业务应用都采用的三层架构:Controller 层负责信息收集、参数校验、转换服务层处理的数据适配前端,轻业务逻辑;Service 层负责核心业务逻辑,包括各种外部服务调用、访问数据库、缓存处理、消息处理等;Repository 层负责数据访问实现,一般没有业务逻辑1.捕获和处理异常不建议在框架层面进行异常的自动、统一处理,尤其不要随意捕获异常:Repository 层出现异常或许可以忽略,或许可以降级,或许需要转化为一个友好的异常。如果一律捕获异常仅记录日志,很可能业务逻辑已经出错原创 2022-01-19 10:07:57 · 1021 阅读 · 0 评论 -
空指针问题常见场景
出现空指针的常见场景参数值是 Integer 等包装类型,使用时因为自动拆箱出现了空指针异常;字符串比较出现空指针异常;诸如 ConcurrentHashMap 这样的容器不支持 Key 和 Value 为 null,强行 put null 的 Key 或 Value 会出现空指针异常;A 对象包含了 B,在通过 A 对象的字段获得 B 之后,没有对字段判空就级联调用 B 的方法出现空指针异常;方法或远程服务返回的 List 不是空而是 null,没有进行判空就直接调用 List 的方法出现空指原创 2022-01-17 14:52:41 · 2554 阅读 · 0 评论 -
使用并发工具应该要多注意这些
1.ThreadLocal使用注意点private static final ThreadLocal<Integer> currentUser = ThreadLocal.withInitial(() -> null);@GetMapping("wrong")public Map wrong(@RequestParam("userId") Integer userId) { //设置用户信息之前先查询一次ThreadLocal中的用户信息 String befor原创 2022-01-07 10:58:56 · 4281 阅读 · 0 评论 -
Spring 事务常见错误
Spring 在初始化时,会通过扫描拦截对事务的方法进行增强。如果目标方法存在事务,Spring 就会创建一个 Bean 对应的代理(Proxy)对象,并进行相关的事务处理操作。1.unchecked 异常与事务回滚新增学生实例:public class Student implements Serializable { private Integer id; private String realname; }}@Mapperpublic interface .原创 2022-01-07 10:45:18 · 858 阅读 · 0 评论 -
Spring Web 过滤器使用常见错误
1.@WebFilter 过滤器无法被自动注入为了统计接口耗时,可以实现一个过滤器如下@WebFilter@Slf4jpublic class TimeCostFilter implements Filter { public TimeCostFilter(){ System.out.println("construct"); } @Override public void doFilter(ServletRequest request, Servle原创 2022-01-06 15:47:14 · 841 阅读 · 0 评论 -
Spring Web 参数验证常见错误
1.对象参数校验失效import lombok.Data;import javax.validation.constraints.Size;@Datapublic class Student { @Size(max = 10) private String name; private short age;}@RestController@Slf4j@Validatedpublic class StudentController { @RequestMap原创 2022-01-06 15:43:30 · 560 阅读 · 0 评论 -
Spring Web Body 转化常见错误
1.变动地返回 Body//定义的数据对象@Data@NoArgsConstructor@AllArgsConstructorpublic class Student { private String name; private Integer age;}@RestControllerpublic class HelloController { @PostMapping("/hi2") public Student hi2(@RequestBody Stu原创 2022-01-06 15:40:23 · 342 阅读 · 0 评论 -
Spring Web Header 解析常见错误
URL 的长度有限,所能携带的信息也因此受到了制约,如果想提供更多的信息,Header 往往是不二之举例如 Content-Type 指定了我们的请求或者响应的内容类型,便于我们去做解码。1.接受 Header 使用错 Map 类型解析header的常见做法:@RequestMapping(path = "/hi", method = RequestMethod.GET)public String hi(@RequestHeader("myHeaderName") String name){.原创 2022-01-06 15:33:41 · 556 阅读 · 0 评论 -
SpringWeb URL解析常见错误
1.当 @PathVariable 遇到 /@RestController@Slf4jpublic class HelloWorldController { @RequestMapping(path = "/hi1/{name}", method = RequestMethod.GET) public String hello1(@PathVariable("name") String name){ return name; }; }以上使用@Pat原创 2022-01-06 15:12:43 · 645 阅读 · 0 评论