自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 8、锁(synchronized、lock、redis实现分布式锁)

记录每一个努力的日子!上一篇:缓存(使用map实现内存缓存、使用ehcache实现磁盘缓存、使用redis实现分布式缓存)参考项目:github 1.6.0分支概述a.锁实现注意点a. redis锁也可以单独调用方法实现原理a.synchronized是JVM提供的锁,通过monitorenter和monitorexit实现。重点是偏向锁、 轻量级锁 、重量级锁理解以及锁膨胀(Mark Word变化)过程理解。b.lock是通过java代码实现锁(更加灵活可控,提供多种中间状态信息和可

2021-01-06 19:47:31 356

原创 7、缓存(使用map实现内存缓存、使用ehcache实现磁盘缓存、使用redis实现分布式缓存)

记录每一个努力的日子!上一篇:mysql多数据源实现参考项目:github 1.5.0分支cache模块概述a.缓存实现b.localcache是基于内存实现的cache、ecache是基于ehcache实现的cache、rediscache是基于redis实现的cache注意点a. spring boot cache其他默认实现参考org.springframework.boot.autoconfigure.cache.CacheTypeb.RedisCacheConfig 36 可以指

2021-01-06 19:31:58 271

原创 6、mysql多数据源实现

记录每一个努力的日子!上一篇:利用spring过滤器来完成请求body解密、验证签名,返回body的加密参考项目:github 1.4.0分支概述a.mysql多数据源实现b.运行OrderParentApplication,请求参考BuyController注意点a. 启动类要排除DataSourceAutoConfiguration,增加自定义DynamicDataSourceConfigb. @Pointcut 不仅支持包,其他比如自定义注解等实现原理都一样c. yml中${}值需

2021-01-06 17:16:34 147

原创 5、利用spring过滤器来完成请求body解密、验证签名,返回body的加密

记录每一个努力的日子!上一篇:制作一个html转pdf的spring boot starter参考项目:github 1.3.0分支 order模块1、原理spring 处理请求的流程是 …->filter->…->controller,所以在未到达controller之前替换掉请求参数即可2、添加Filter自定义一个Filter类实现Filter接口,重写doFilter方法,添加一个FilterRegistrationBean到容器中即可@Beanpublic Fil

2020-11-01 11:03:17 910

原创 4、制作一个html转pdf的spring boot starter

记录每一个努力的日子!上一篇:使用euereka、zuul、config、feign、ribbon基本组件完成微服务架构参考项目:github 1.2.0分支 tool模块1、依赖软件wkhtmltopdf2、关键代码使用ProcessBuilder来执行可执行脚本public Html2pdf(String command){ this.command = command;}public final void conver(String htmlPath, String pdfP

2020-11-01 10:28:24 423 2

原创 3、maven多module打包

记录每一个努力的日子!上一篇:使用euereka、zuul、config、feign、ribbon基本组件完成微服务架构参考项目:github 1.1.0分支1、优势与劣势优势:各自模块物理隔离,可单独运行单个子模块,也可以运行主模块全部运行。劣势:需要处理好依赖关系,以免发生循环依赖注意点:各模块中不可出现同名bean,会注入失败,建议加模块名前缀2、项目结构多模块的<groupId>需要一致。这样模块a的包结构就是groupId.a,模块b的包结构就是groupId.b。在主

2020-10-31 23:43:25 501

原创 2、使用euereka、zuul、config、feign、ribbon基本组件完成微服务架构

记录每一个努力的日子!上一篇:使用maven多module构建一个web后端项目参考项目:github 1.0.0分支1、工具idea实用功能, 父项目目录/.idea/workspace.xml 中的RunDashboard下增加配置,启用RunDashboard启动方式<option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationTy

2020-10-31 22:35:52 162

原创 1、使用maven多module构建一个web后端项目

记录每一个努力的日子!参考项目:github master分支.1、工具idea2、概述多模块相比较单体服务,可以使一个项目更加容易管理,避免来回切换项目3、步骤3.1file->new->project(选择 Spring Initializr、 project SDK 1.8)->next(填写 Group、Artifact、选择 Java Version、其他默认)->next->next->finish3.2删除src文件3.3打开pom.

2020-10-31 21:05:45 166

原创 CPU使用不高,内存使用很大的问题?

进展第一步以下命令重点查找pid、关注内存占用数量和比例 top #使用shift + m 排序内存使用 ps axuf | sort -n -k3第二步csdn、云栖社区、百度中找各种帖子https://blog.csdn.net/lycyingO/article/details/80854669 #和现有问题相识度很高第三步在自己aliyun服务器上使用gdb,感觉并...

2019-04-30 16:13:10 1372

原创 桥接

public interface BridgeSource&lt;T&gt; { T insert(T t); void delete(T t); T update(T t); T select(T t);}public class BridgeSourceImpl1 implements BridgeSource { @Override ...

2018-08-15 14:59:01 199

原创 java 发布订阅Observer

public class Publish extends Observable{ private String data = ""; public String getData() { return data; } public void setData(String data) { if(!this.data.equals(d...

2018-08-15 09:40:17 182

原创 java策略 Strategy

public interface Animal { void bark();}public class Cat implements Animal{ @Override public void bark() { System.out.println("miao..."); }}public class Dog implements...

2018-08-14 19:33:13 192

原创 annotation

@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Value { String value();}public interface IConfig { @Value("db.url") String dbUrl(); ...

2018-08-14 18:31:30 173

原创 java代理 proxy

public interface Person { String sing(String name); String dance(String name);}public class LiuDeHua implements Person{ @Override public String sing(String name) { Syste...

2018-08-14 18:28:19 805

原创 api限流

20180810限流public class TokenBucket { // 默认桶大小个数 即最大瞬间流量是64M private static final int DEFAULT_BUCKET_SIZE = 1024 * 1024 * 64; // 一个桶的单位是1字节 private int everyTokenSize = 1; ...

2018-08-14 17:29:03 335

转载 CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...

2018-08-14 17:22:54 147

原创 mysql隔离级别、锁机制

隔离级别1、Read Uncommitted 可能出现问题举例:读脏2、Read Committed 可能出现问题举例:不一致3、Repeatable Read 可能出现问题举例:幻读4、Serializable 可能出现问题举例:超时锁机制 1、开启两个会话 2、每个会话开启事务 3、第一个会话中执行update sql(返回结果) 4、第二个会话中执行u...

2018-08-10 13:43:51 183

空空如也

空空如也

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

TA关注的人

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