
java
心多大,路多远
这个作者很懒,什么都没留下…
展开
-
Spring的两种代理方式:JDK动态代理和CGLIB动态代理
AOP的实现原理: 都是基于代理模式,都是生成一个大代理对象 静态AOP: AspectJ实现的AOP, 将切面代码直接编译到Java类文件中 --- 实现: JDK提供的动态代理技术 动态AOP: 将切面代码进行动态织入实现的AOP --- Spring的AOP为动态AOP --- 实现: CGLIB(动态字节码增强技术) JDK动态代理: --- .原创 2020-09-09 14:16:54 · 220 阅读 · 0 评论 -
docker安装elasticsearch7.6.1、elasticsearch-head、kibana7.6.1
安装elasticsearch拉取镜像docker pull elasticsearch:7.6.1运行容器运行命令创建启动容器:docker run -d --name es -p 9200:9200 -p 9300:9300 \-e "discovery.type=single-node" elasticsearch:7.6.1discovery.type=single-node:单机学习直接添加该参数,表示单节点运行,避免启动的时候es的引导检查会报错将配置文件、数原创 2020-08-29 14:50:05 · 763 阅读 · 0 评论 -
Redis Cluster高可用(HA)集群环境搭建详细步骤以及SpringBoot连接Redis集群(带密码)
1.为什么要有集群由于Redis主从复制架构每个数据库都要保存整个集群中的所有数据,容易形成木桶效应,所以Redis3.0之后的版本添加特性就是集群(Cluster)2.Redis集群架构说明架构细节:(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.(2)节点的fail是通过集群中超过半数的master节点检测失效时才生效.(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可原创 2020-08-27 11:48:37 · 2183 阅读 · 0 评论 -
swagger2 导出api为html和word文档
swagger2 导出api为html和word文档参考地址https://blog.youkuaiyun.com/zhuyu19911016520/article/details/85048271依赖引入<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId>转载 2020-08-26 16:48:26 · 1756 阅读 · 0 评论 -
SpringBoot+redis时事务和SessionCallback的使用和抉择
首先从使用springboot+redis碰到的一个问题说起。在前几篇文章中介绍了用SpringBoot+redis构建了一个个人博客。在刚开始远行的时候发现发了几个请求操作了几次redis之后,后面的就被阻塞了,请求一直在等待返回,我们重现一下问题。建议使用后面提到的SessionCallback。[注意] 该问题只会出现在springboot 2.0之前的版本;2.0之后springboot连接Redis改成了lettuce,并重新实现,问题已经不存在打开Template的事务支持POM 配置:原创 2020-08-23 21:36:18 · 3035 阅读 · 0 评论 -
SpringBoot整合连接Redis集群
第一步,新建项目maven项目,添加依赖(1)本文所采用的SpringBoot的版本如下<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> <rela.原创 2020-08-23 20:49:11 · 4510 阅读 · 0 评论 -
SpringBoot中RabbitMQ死信队列介绍和使用
死信队列可以实现消息在未被正常消费的场景下,对这些消息进行其他处理,保证消息不会被丢弃。在说死信队列之前,我们先介绍下为什么需要用死信队列。如果想直接了解死信对接,直接跳入下文的"死信队列"部分即可。ack机制和requeue-rejected属性RabbitMQ在SpringBoot中集成在项目springboot-demo我们看到application.yaml文件部分配置内容如下...listener: type: simple simple: .原创 2020-08-21 14:57:13 · 5061 阅读 · 2 评论 -
异步@Async + 事务@Transactional的结合
每篇一句将依赖做到精简是中间件岗位最基本的素养,美国童子军也有一条军规:让营地比你来时更干净。 请参阅书籍《Clean Code》前言如题,如果把这两者拆开来看的话,两者你应该都不陌生:@Async你不陌生,@Transactional你应该更不陌生,若单独拿来使用,理论上应该木有不会用的吧。本文不废话,分析一下他俩结合一起使用的case,因为据我了解很多人对结合一起使用时,心里还是打鼓...转载 2020-02-19 11:08:40 · 16641 阅读 · 0 评论 -
本地化OR普通---Java中的字符串比较,按照使用习惯进行比较
java中的字符串比较一般可以采用compareTo函数,如果a.compareTo(b)返回的是小于0的数,那么说明a的unicode编码值小于b的unicode编码值。但是很多情况下,我们开发一款app需要结合“国情”,比如在电话本中,我们希望“李四”排在“zhangsan”的前面,但是如果采用普通的compareTo函数的字符串比较的方式,那么“zhangsan”小于“李四”,由此造成了“z原创 2017-12-19 08:51:16 · 198 阅读 · 0 评论 -
源码分析commitAllowingStateLoss() 和commit()的区别(挑重点去知道)
之前在使用Fragment的时候偶尔会有这么一个报错,Can not perform this action after onSaveInstanceState,意思为无法再onSaveInstanceState之后执行该操作,这个操作就是指commit(),之前也没怎么在意,后来通过查看源码去了解了一下这个问题,以下是对这个问题的解析及对应解决办法的对比。 Fragment转载 2017-12-18 19:28:48 · 278 阅读 · 0 评论 -
自定义控件过程中(自定义属性对应多个固定属性值
今天写一个自定义控件,为了提高使用者使用效率,需要对一个属性的所有可能属性值进行枚举(即,只能选择使用给出的属性值)查了很多资料,自己总结一下。 1、自定义属性在res/values中的attrs.xml中自定义属性。 attr name="type"> en原创 2017-12-21 09:00:56 · 1059 阅读 · 0 评论 -
ArrayList下的clear 和 removeAll
多做多看多学原创 2017-12-12 09:38:42 · 1163 阅读 · 1 评论