- 博客(18)
- 资源 (4)
- 收藏
- 关注
原创 logback关闭某个包的日志
<logger name="org.apache.kafka.clients.consumer.internals.ConsumerCoordinator" level="OFF"/> packname一般是包名,但也可能是其他的名字,这个取决于java代码中写的名字static final Logger log=LoggerFactory.getLogger("name");...
2020-11-26 11:33:35 1343
原创 使用idea连接mysql时出现 CLIENT_PLUGIN_AUTH is required 解决办法:换个驱动版本.
使用idea连接mysql时出现 CLIENT_PLUGIN_AUTH is required 解决办法:换个驱动版本.
2020-11-21 20:04:04 945
原创 Spring-Kafka —— 实现批量消费和手动提交offset
spring-kafka的官方文档介绍,可以知道自1.1版本之后,@KafkaListener开始支持批量消费,只需要设置batchListener参数为true把application.yml中的enable-auto-commit设置为false,设置为不自动提交@Beanpublic KafkaListenerContainerFactory<?> batchFactory(ConsumerFactory consumerFactory){ Concurr.
2020-11-20 15:27:19 1974
原创 在 MySQL InnoDB 中,COMPRESSED, COMPACT 和DYNAMIC 有什么区别?
在 MySQL InnoDB 中,COMPRESSED, COMPACT 和DYNAMIC 有什么区别?In MySQL InnoDB, what is the difference between COMPRESSED, COMPACT and DYNAMIC for ROW_FORMAT?What are the benefits between each other?在 MySQL InnoDB 中,COMPRESSED, COMPACT 和DYNAMIC对于用户来说ROW_FORM.
2020-11-17 14:32:17 1373
原创 mysql 5.7.22 自带的四个数据库 介绍
四个系统自带库为:information_schema、mysql、performance_schema、sys;5.6版本自带的库为:information_schema、mysql、performance_schema、test。2.information_schema.information_schema提供了访问数据库元数据的方式。(元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有时用于表述该信息的其他术语包括“数据词典”和“系统目录”。).换句换说,info...
2020-11-14 14:18:19 156
原创 List<String>与逗号分隔的字符串互转
将逗号分隔的字符串转换为List List<String> list = Arrays.asList(str.split(",")); List<String> list = Arrays.asList(StringUtils.split(str, ","));将list转化为逗号分割的字符串 String str = String.join(",", list); String str = StringUtils.json(list.to
2020-11-14 13:28:57 227
原创 CGLib动态代理原理及实现
JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢,这就需要CGLib了。CGLib采用了非常底层的字节码技术,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。JDK动态代理与CGLib动态代理均是实现Spring AOP的基础。 简单的实现举例:这是一个需要被代理的类,也就是父类,通过字节码技术创建这个类的子类,实现动态代理。public class SayHello {public v...
2020-11-07 15:57:56 269
原创 springboot请求体中的流只能读取一次的问题 httpServletRequest中的流只能读取一次的原因 springboot-拦截器-过滤器-Required request body is
场景交代在springboot中添加拦截器进行权限拦截时,需要获取请求参数进行验证。当参数在url后面时(queryString)获取参数进行验证之后程序正常运行。但是,当请求参数在请求体中的时候,通过流的方式将请求体取出参数进行验证之后,发现后续流程抛出错误: Required request body is missing ... 经过排查,发现ServletInputStream的流只能读取一次(参考:httpServletRequest中的流只能读取一次的原因)。这..
2020-11-07 15:50:23 1199
原创 spring aop的@Before,@Around,@After,@AfterReturn,@AfterThrowing的理解
aop的这几个注解的使用非常常见,但是他们的执行顺序,以及作为我们进入核心代码前的校验,是如何在校验失败不然他进入核心方法的?博客上确实有不少讲解的很详细,我在结尾也会推荐几篇。这里就几个重要的点和不明的点做下说明,前事不忘后事之师!1.AOP的基本概念切面(Aspect):通知(advice)和切入点(pointcut)共同组成了切面(aspect),时间、地点和要发生的“故事”。可以从注解方式来理解,代码如下。@aspect为类上面的注解——切面@pointcut(…)——切入点。...
2020-11-07 15:40:47 881
原创 详解Spring 框架中切入点 pointcut 表达式的常用写法
Spring AOP 用户可能会经常使用 execution 切入点指示符。执行表达式的格式如下: 1 2 3 execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern)throws-pattern?) 除了返回类型模式(上面代码片断中的 ret-type-pattern),名字模式和参数模式以
2020-11-07 15:32:19 334
原创 Spring计时器StopWatch使用
StopWatch是位于org.springframework.util包下的一个工具类,通过它可方便的对程序部分代码进行计时(ms级别),适用于同步单线程代码块。 正常情况下,我们如果需要看某段代码的执行耗时,会通过如下的方式进行查看:public static void main(String[] args) throws InterruptedException { StopWatchTest.test0();// StopWatchTest.test1();}
2020-11-07 14:41:58 1001
原创 Java反射-解析ProceedingJoinPoint的方法参数及参数值
import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.reflect.CodeSignature;import java.util.HashMap;import java.util.Map;public class AspectjUtils { /** * 获取某个Method的参数名称及对应的值 * * @param joinPoint * @return Map&...
2020-11-07 14:35:28 3168
原创 MySQL 中 datetime 和 timestamp 的区别与选择
MySQL 中常用的两种时间储存类型分别是datetime和timestamp。如何在它们之间选择是建表时必要的考虑。下面就谈谈他们的区别和怎么选择。1 区别1.1 占用空间类型 占据字节 表示形式 datetime 8 字节 yyyy-mm-dd hh:mm:ss timestamp 4 字节 yyyy-mm-dd hh:mm:ss 1.2 表示范围类型 表示范围 datetime '1000-01-01 00:00:00..
2020-11-06 16:59:50 1175
原创 java在注解中绑定方法参数的解决方案
我们有这样子的需求,需要记录用户操作某个方法的信息并记录到日志里面,例如,用户在保存和更新任务的时候,我们需要记录下用户的ip,具体是保存还是更新,调用的是哪个方法,保存和更新的任务名称以及操作是否成功。这里最好的技术就是spring aop + annotation,首先我来定义个注解类/** * 参数命名好麻烦,我就随便了,只是演示下用法 * @author liuxg * @date 2016年4月13日 上午7:53:52 */@Documented@Retention(Ret
2020-11-05 09:36:19 1718 1
原创 spring aop的@Before,@Around,@After,@AfterReturn,@AfterThrowing的理解
aop的这几个注解的使用非常常见,但是他们的执行顺序,以及作为我们进入核心代码前的校验,是如何在校验失败不然他进入核心方法的?博客上确实有不少讲解的很详细,我在结尾也会推荐几篇。这里就几个重要的点和不明的点做下说明,前事不忘后事之师!1.AOP的基本概念切面(Aspect):通知(advice)和切入点(pointcut)共同组成了切面(aspect),时间、地点和要发生的“故事”。可以从注解方式来理解,代码如下。@aspect为类上面的注解——切面@pointcut(…)——切入点。...
2020-11-04 19:15:37 1086
原创 LocalDateTime和Date的比较与区别
通过本篇文章了解 为什么需要LocalDate、LocalTime、LocalDateTime【java8新提供的类】 java8新的时间API的使用方式,包括创建、格式化、解析、计算、修改为什么需要LocalDate、LocalTime、LocalDateTimeDate如果不格式化,打印出的日期可读性差Tue Sep 10 09:34:04 CST 2019使用SimpleDateFormat对时间进行格式化,但SimpleDateFormat是线...
2020-11-04 19:13:21 3507
原创 idea启动java服务报错OutOfMemoryError: GC overhead limit exceeded解决方法
在用idea开发java项目时,启动报内存溢出错误,致服务启动失败:Error:java: java.lang.OutOfMemoryError: GC overhead limit exceeded报此错说明启动期间内存不够用了,把idea的启动进程堆内存值设大点就行了。设置窗口:Settings --->Build,Execution,Deployment---> Complier把 build process heap size 值改大点即可如下图所示:把此值改为10
2020-11-04 18:19:31 15030 3
原创 java在注解中绑定方法参数的解决方案
@RequestMapping("/mvc24")@Logger(param1 = "#{task.project.projectName}",param2 = "#{task.taskName}",param3 = "#{name}",param4 = "常量")public void mvc24(Task task ,String name){ //...}
2020-11-04 18:11:28 241
redis-desktop-manager-2019.2.0.exe安装版
2019-07-22
未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。 (System.Data)
2019-03-14
ComponentArt UI framework 2012源码
2018-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人