![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
Lune_solitair
这个作者很懒,什么都没留下…
展开
-
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 · 332 阅读 · 0 评论 -
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.CacheType b.RedisCacheConfig 36 可以指原创 2021-01-06 19:31:58 · 251 阅读 · 0 评论 -
6、mysql多数据源实现
记录每一个努力的日子! 上一篇:利用spring过滤器来完成请求body解密、验证签名,返回body的加密 参考项目:github 1.4.0分支 概述 a.mysql多数据源实现 b.运行OrderParentApplication,请求参考BuyController 注意点 a. 启动类要排除DataSourceAutoConfiguration,增加自定义DynamicDataSourceConfig b. @Pointcut 不仅支持包,其他比如自定义注解等实现原理都一样 c. yml中${}值需原创 2021-01-06 17:16:34 · 128 阅读 · 0 评论 -
桥接
public interface BridgeSource<T> { 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 · 183 阅读 · 0 评论 -
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 · 167 阅读 · 0 评论 -
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 · 182 阅读 · 0 评论 -
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 · 150 阅读 · 0 评论 -
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 · 785 阅读 · 0 评论 -
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 · 327 阅读 · 0 评论