自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 问答 (2)
  • 收藏
  • 关注

原创 非侵入式AOP实践(二):动态代理

上一篇文章说到用AspectJ实现非侵入式AOP

2020-05-25 11:51:10 305

原创 非侵入式AOP实践(一):AspectJ

AOP,面向切面编程,可以不修改原来的代码,增加一些通用的、业务无关的逻辑,例如日志记录性能统计等。但一般都是使用spring框架提供的AOP支持和AspectJ,需要先写好切面逻辑,再在业务方法上加上设计好的注解: /** * 1.定义注解 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface NILogBefore { } @Aspect public class NI

2020-05-17 22:44:41 392

转载 cglib源码分析(四):cglib 动态代理原理分析

本文分下面三个部分来分析cglib动态代理的原理。cglib 动态代理示例代理类分析Fastclass 机制分析一、cglib 动态代理示例public class Target{ public void f(){ System.out.println("Target f()"); } public void g(){ System.out.println("Target g()"); }}public class Inte

2020-05-10 21:13:55 367

原创 浅谈Java线程池原理

多线程可并发处理多个任务,提高计算机资源的利用率和工作效率,那么是不是来一个任务就开一个线程处理就完事呢?当然是不行的,因为创建、切换、销毁线程的开销不小,如果是处理短小任务的话,很有可能得不偿失,甚至造成系统崩溃。为了解决线程开销和,线程池的概念应运而生。...

2020-04-26 23:29:28 383

原创 从ReentrantLock看AQS

前置知识:多线程同步、ReentrantLock、重入的概念谈到Java的多线程,必然少不了传说中的AQS。那么AQS是什么?官方一点的说法来讲,AQS提供了原子值state和同步队列,是旨在实现同步相关功能的一个框架,JUC包的基础类。这样说好像有点抽象,那就从用到它的ReentrantLock入手。画了个不太标准的类图,可以从中看出ReentrantLock里面有三个内部类,其中Sync...

2020-04-19 22:06:12 127

原创 如何实现线程返回值——FutureTask

一、介绍FutureTask位于java.util.concurrent包中,用于处理并返回异步任务结果。二、简单的例子三、源码分析

2020-04-12 19:04:52 897

原创 数据库单表数据量太大的优化方案总结

场景:一个表每天新增几万数据,目前单表总数据量在几百万数据。会查询粒度大的统计数据,也会查询粒度比较小的数据,当天更新的数据查询频率最密,最近几天的数据次之。随着数据越来越多,数据库的性能开始变低。那么应该从哪些角度出发思考优化方案?1.从时间特征出发:看看大约的更新时间点,在这个时间点之前的当天数据查询,直接返回“没有更新”提示,不用查库;2.从数据特征出发:1)热点数据是当天的数据,所...

2020-04-12 13:56:54 4468

原创 浅谈Git分支策略

《Git团队协作》介绍了几种分支策略,结合之前在工作中用到的分支策略,简单总结下。一、主线分支开发这是最基础的分支策略,有且只有一个分支——master,所有人都可以随时提交到master分支,随时可以部署发版。在项目规模小,开发者数量不多并且大家负责的工作比较独立的情况下,这样简洁的分支策略已经可以满足了。但是一旦出现问题之后,代码回退就很困难了。#二、使用分支的主线开发这种分支策略...

2020-04-12 13:55:26 247

原创 从微信授权登录到数据安全性的思考总结

前置知识:微信授权登录过程和相关名词,access_token、code、openid等;微信授权登录,大都是拉起微信授权页面,用户同意授权后,再跳到自己应用的绑定手机页面进行绑定手机的操作,绑定之后自动登录,会话就像不会过期一样,或者是过期以后再次点一次授权按钮即可。不用像以前一样,每次都用密码或验证码登录,让用户再做繁琐的登录操作。如图,第一次微信授权还好,因为没有绑定,所以需要手机验证...

2020-04-12 13:53:26 1713

原创 Spring Boot + MyBatis + MySql项目搭建

一、创建Spring Boot 项目在IntelliJ IDEA新建一个Spring Boot项目:然后在pom.xml可以看到已经有Mybatis和MySql Connector的依赖:<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybat...

2020-04-12 13:50:52 179

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除