摘要: ``` package com.ligotop.core.utils; import com.ligotop.core.exceptions.BusinessException; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; public class HttpMethodUtil { public 阅读全文
posted @ 2019-11-03 23:11 发挥哥 阅读(2021) 评论(0) 推荐(0) 编辑
摘要: 参考《架构探险 从零开始写javaweb框架》4.6章节 自定义ThreadLocal ThreadLocal容器,存放线程局部变量,设计目标:解决线程并发问题,使用场景:存放JDBC Connection,达到事务控制的能力。 将connection放在DBUtil中的静态变量,多个线程操作DBU 阅读全文
posted @ 2019-10-30 00:44 发挥哥 阅读(756) 评论(0) 推荐(0) 编辑
摘要: 本篇博客参考《架构探险 从零开始写java web框架》4.3章节 1代理接口: 2代理链(责任链模式,同一个对象可以被多个Proxy层层代理): 4Proxy接口的抽象实现,模板方法模式: 5举例某个具体的Proxy实现: 6自定义注解@Aspect,作为代理标记: 7初始化框架并创建代理对象放入 阅读全文
posted @ 2019-10-29 23:44 发挥哥 阅读(591) 评论(0) 推荐(0) 编辑
摘要: JDK动态代理【接口】: CGLIB动态代理【类或接口】: 依赖: 编码: Spring AOP: 增强类: 编程式: 声明式: 切面: 动态代理拦截了类中所有方法,需要在代码中对所拦截的方法名加以判断,不太优雅的做法。 Spring AOP也拦截了类中所有方法,可通过切面Advisor(增强类Ad 阅读全文
posted @ 2019-10-28 22:20 发挥哥 阅读(414) 评论(0) 推荐(1) 编辑
摘要: 测试代码: ``` package jdktest;public class HoldCPUMain { //该车型简单占用cpu,4个用户线程,一个占用大量cpu资源,3个线程处于空闲状态 public static class HoldCPUTask implements Runnable { 阅读全文
posted @ 2019-10-21 23:38 发挥哥 阅读(776) 评论(0) 推荐(0) 编辑
摘要: Get请求url不超过4000字节 Rest成熟度:level 0:使用http作为传输方式,leve 1:引入资源概念,每个资源有对应的url,level 2:使用http方法进行不同操作,使用http状态码表示不同结果,level 3:使用超媒体,在资源表达式中包含链接信息,一般做到level 阅读全文
posted @ 2019-09-11 23:39 发挥哥 阅读(2247) 评论(0) 推荐(0) 编辑
摘要: 参数校验:简单的就逐个手动写代码校验,推荐用Valid,使用hibernate-validator提供的,如果参数不能通过校验,报400错误,请求格式不正确: 步骤1:在参数对象的属性上添加校验注解如@NotBlank 步骤2:用@Valid注解controller方法的参数对象 常用校验注解(通过 阅读全文
posted @ 2019-09-11 23:38 发挥哥 阅读(6504) 评论(0) 推荐(0) 编辑
摘要: 同一个对象,在不同的场景,返回不同的属性,如getUserById返回User对象包含password值,而getAllUsers返回User集合,不包含password值(通过接口查看显示,序列化的时候直接忽略该属性,而非返回null),这些场景称为视图,使用JsonView: 三个步骤: 1.通 阅读全文
posted @ 2019-09-11 23:36 发挥哥 阅读(2082) 评论(0) 推荐(0) 编辑
摘要: 概念: 在 HTML 中,, , , 阅读全文
posted @ 2019-08-16 19:35 发挥哥 阅读(372) 评论(1) 推荐(0) 编辑
摘要: Mybatis的分支选择: 循环In: 阅读全文
posted @ 2019-08-04 21:00 发挥哥 阅读(1490) 评论(0) 推荐(0) 编辑