- 博客(44)
- 收藏
- 关注
原创 spring-boot-redis-starter源码分析
spring-boot-redis-starter源码分析文章目录spring-boot-redis-starter源码分析RedisAutoConfiguration自动配置类,redis链接工厂以及哨兵等监听RedisTemplate执行操作时的链接建立过程commons-pool2池化技术GenericObjectPool.borrowObject()大体思路如下Redis链接释放过程R...
2019-05-07 16:58:36 1043
原创 科目二注意事项
科目二注意事项倒桩调座椅?左右后视镜?安全带?踩离合刹车?松手刹?挂倒挡?注意速度一定要慢注意右侧偏小的问题?考试时注意调整正手起点打死方向盘的点位(距离白色虚线的长度)?回半圈的点位(拳头的大小)?向右打死的点位(边角消失后不要立刻打,避免右边过小的失误)?回正的时机?停车点?反手起点打死方向盘的点位(比正手多一个巴掌)?回半圈的点位(拳头的大小)?向左打死的点位(不需要回半圈,边角消失后立刻打,避免右边过小的失误)?回正的时机?停车点?出库注意反手时,往前多开一点,车偏外停,方便反手入
2020-06-06 20:56:16 405
原创 PriorityQueue优先级队列使用过程中数据变更问题
在一次开发过程中,由于业务查询返回数据为一个list,需要根据每个list中内容某些字段进行排序后返回给业务使用,而业务使用过程中需要一个遍历list一个个去尝试发送消息,直到发送成功。这里首先想到的是用到Queue的数据结构,这样业务使用时每次都直接poll()取头数据即可,直到取不到数据为止。之所以想到Queue结构,是认为这样业务处理简单,每次取完数据,均不需要记录当前的次数,因为队列的结...
2020-03-05 20:05:37 2372 1
原创 使用visualvm远程监控JVM
visualvm支持在linux和windows上启用图形界面监控jvm的资源,基于目前我们的server资源比较紧张,而且从监控方便的角度来分析(我们现有server的linux系统是关闭图形界面的,如果要支持visualvm的图形显示需要安装插件),我推荐在自己的windows环境中安装监控的客户端Visualvm目前支持两种remote connection方式,分别是jstatd和JMX...
2019-10-08 16:44:11 362
原创 maven依赖库和发布库配置
迁移库制品库和依赖库迁移地址:arttest.maven.com.cn该制品库中已经将老的制品库中的public-maven-remote库迁移过来,部分依赖可以通过该库进行下载。新建了一个部门的maven库vas-release-maven,存放远程库无法下载的平台提供jar包,平台提供的jar直接使用maven坐标是无法在maven库中进行,可以先把该jar包deploy到vas-rel...
2019-09-24 20:17:28 1056 1
原创 观察者模式
定义了一种一对多的依赖关系,一个主题对象可被多个观察者对象同时监听。当这个主题对象状态变化时,会通知所有观察者对象并作出相应处理逻辑。又被称为发布订阅模式。何时使用一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。使用场景:一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这些方面封装在独立的对象中使它们可以各自独立地改变和复用。一个...
2019-09-20 11:26:19 134
原创 备忘录模式
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保持这个状态。这样以后就可以将该对象恢复到原先保存的状态.使用场景很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操作,能够恢复到他原先的状态,使得他有"后悔药"可吃。uml角色说明:originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻的内部状态...
2019-09-17 21:44:33 142 1
原创 中介者模式
中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室、QQ群、短信平台和房产中介。不论是QQ游戏还是QQ群,它们都是充当一个中间平台,QQ用户可以登录这个中间平台与其他QQ用户进行交流,如...
2019-09-16 21:37:42 114
原创 迭代器模式
提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示优点: 1、它支持以不同的方式遍历一个聚合对象。 2、迭代器简化了聚合类。 3、在同一个聚合上可以有多个遍历。 4、在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。缺点:由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统...
2019-09-16 15:23:54 104
原创 命令模式
将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作命令模式的几个角色:1. 抽象命令接口Command:定义命令的接口,声明执行的方法。2. 具体的命令对象ConcreteCommand:持有具体的接受者对象,完成具体的具体的命令。3. 接受者对象Receiver:接受者对象,真正执行命令的对象。4. 传递命令对象Invoker:持有命令对...
2019-09-16 10:46:19 142
原创 责任链模式
为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,所以责任链将请求的发送者和请求的处理者解耦了优缺...
2019-09-12 15:58:06 231
原创 代理模式
为其他对象提供了一种代理以控制对这个对象的访问.代理对象在客户端和目标对象之间起到中介作用,属于结构性模式。目的保护对象增强目标对象Subject是顶层接口;RealSubject是真实对象(被代理对象)Proxy是的代理对象,代理对象持有被代理对象的引用,客户端调用代理对象的方法,同时也调用被代理对象的方法,但是会在代理对象前后增加一些处理逻辑.一般分为静态代理和动态代...
2019-09-10 22:07:21 242
原创 享元模式
又称为 轻量级模式,它是一种对象结构型模式面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式 正是为解决这一类问题而诞生的。享元模式 是对象池的一种实现。类似于线程池,线程池可以避免不停的创建和销毁多个对象,消耗性能。享元模式 也是为了减少内存的使用,避免出现大量重复的创建销毁对象...
2019-09-10 19:58:32 573
原创 装饰器模式2
抽象角色component,定义一组公共接口/** * 定义顶层喝奶茶的接口 * @author 10191192 * @date 2019/9/10 */public interface DrinkMilkTea { float getTotalPrice(); String useMaterial();}具体的构建角色,被装饰者类/** * 焦糖奶茶类,实...
2019-09-10 14:41:16 92
原创 门面模式
门面模式也叫外观(Facade)模式,外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用客户端不与系统耦合,外观类与系统耦合实现细节Shape:系统角色...
2019-08-02 19:08:57 162
原创 适配器模式
适配器模式作为两个不兼容的接口之间的桥梁。结构性模式,结合了两个独立接口的功能。有一个电器的插头是三脚的,而现有的插座是两孔的,要使插头插上插座,我们需要一个插头转换器,这个转换器即是适配器。适配器模式分为三类:类适配器、对象适配器、接口适配器(或又称作缺省适配器模式)把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作实现细节源(A...
2019-08-02 19:03:07 132
原创 装饰器模式
装饰器模式也叫包装器模式,降低系统的耦合度,可以动态的增加或者删除对象的职责,并使得需要装饰的具体构建类和具体装饰器类可以独立变化,以便增加新的具体构建类和具体的装饰器类链接动态的为一个对象增加新的功能装饰器模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀实现细节Component抽象构件角...
2019-08-02 18:51:16 144
原创 Spring cloud config配置中心
文章目录mq实现配置下发原理git hook配置服务端实现依赖application配置启动类实现客户端实现依赖bootstrap配置mq实现配置下发原理spring-cloud-config-server本身不包含自动刷新的功能,这里借助spring-bus消息总线结合rabbitmq的方法实现。其中bus中提供了/bus/refresh接口,调用该接口可以配置下发的功能(其原理就是借助...
2019-07-23 16:13:46 299
原创 springboot详解--外部化配置
Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,方便配置呢?文章目录1. 通过命令行指定2. 外置配置文件3. 自定义配置文件4. 使用spring cloud config 配置中心5.外部化配置方式与优先级1. 通过命令行指定SpringApplication会默认将命令行选项参数转换为配置信息...
2019-05-13 18:58:05 526
原创 springboot详解--自定义配置文件
文章目录1.5.x之前的版本1.5.x之前的版本在此之前的版本中,spring-boot的locations属性可以正常使用,即可以使用其指定配置文件的路径。配置类需要与配置文件中的属性相同:我们可以使用如下配置类接收配置文件中的数据。/** * 加载yaml配置文件的方法,生成 * spring-boot更新到1.5.2版本后locations属性无法使用 * @Property...
2019-05-13 10:31:50 338
原创 springboot详解--配置类与自动配置
文章目录xml配置与javaconfig的对比1. 基于表达成面:2. 注册bean定义成面3. 表达依赖注入关系层面javaconfig配置类的几种实现方式自动配置FAQxml配置与javaconfig的对比1. 基于表达成面:基于xml的配置:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://w...
2019-05-13 00:16:49 3702 1
原创 springboot详解--自定义注解
新增注解接口与新建class、interface一样,新建@interface即可。形如下:@Retention(RetentionPolicy.RUNTIME)@Documented@Target(ElementType.TYPE)@Import(MmmAutoConfiguration.class)public @interface EnableMmmClient {}@Re...
2019-05-12 17:29:11 521
原创 springboot详解--常用注解
1. @SpringBootApplication申明让spring boot自动给程序进行必要的配置,等价于以默认属性使用@Configuration、@EnableAutoConfiguration、@ComponentScan2. @RestController返回json字符串的数据,直接可以编写RESTFul的接口3. @ComponentScan告诉Spring 哪个pac...
2019-05-12 16:40:17 217
原创 redis安装和部署(含cluster以及sentinel)
文章目录下载和安装新建redis用户:redis用户解压文件:代码编译启动:下载和安装官网下载菜鸟教程下载最新稳定版(stable)即可.:redis-5.0.3.tar.gz新建redis用户:groupadd -g 1002 dbauseradd -s /bin/bash -d /home/redis -g dba -m redisroot用户将redis-5.0.3.tar...
2019-05-07 21:56:57 157
原创 maven基本操作
文章目录安装以及配置环境变量设置阿里云仓库配置设置私有仓库路径父子工程父工程maven常用命令安装以及配置直接解压即可使用环境变量设置MAVEN_HOME=D:\Program Files (x86)\apache-maven-3.5.3Path变量值的末尾加上%MAVEN_HOME%\bin(注意:跟前面变量值要以英文分号间隔)。阿里云仓库配置配置maven仓库为阿里云:setti...
2019-05-07 21:47:28 119
转载 shell读取ini配置文件
linux shell 脚本读取 ini 配置档打码如下: #!/bin/bash configFile="./config.ini" function ReadINIfile() { Key=$1 Section=$2 Configfile=$3 Re
2017-10-24 10:47:28 5113 1
原创 Tomcat日志
TOMCAT 日志配置说明 Tomcat日志信息分为两类 1) 运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息。 2)访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。Tomcat运行日志的等级 1)日志类型与级别 Tomcat日志分为下面5类: catalina、localhost、manage、admin、host-manage 2) 每类日志
2017-10-11 09:06:35 460
原创 webservice学习笔记
参考文献 1、eclipse+webservice开发实例 :http://blog.csdn.net/xw13106209/article/details/7049614/ 2、 Web Service学习笔记(webservice、soap、wsdl、jws详细分析) :http://blog.csdn.net/lfy9608110935/article/details/
2017-07-05 20:03:46 282
原创 tomcat启动时内存溢出问题--java.lang.OutOfMemoryError: PermGen space
在某次工程开发中,将web项目导入eclipse后,有时会遇到tomcat无法正确启动的问题,例如下面的内存溢出问题: InitQueueThread is doWakeUp….. workFlow ==== PubQueuetask List size is 0 Jun 27, 2017 9:44:14 AM org.apache.catalina.core.S
2017-06-27 09:56:12 1735
原创 java读取xml和property配置文件的方法
在软件开发过程中,有很多时候会有配置项的设置,通常配置项均是以key-value键值对的形式出现的,而比较常用的配置文件为Property和XML两种。XML配置文件解析-DOM有以下配置文件config.xml,里面配置了不同的系统参数,类似于key-value的形式。<?xml version = "1.0" encoding="UTF-8"?><switch> <config ke
2017-06-14 11:46:05 7384
原创 工厂方法模式
在玩“极品飞车”游戏时,游戏者可以选择从不同的品牌来选择赛车,那么这个品牌其实也就是工厂,每个工厂生产的赛车都不一样。UML图Factory Method(工厂模式):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。 应用场景:由于需求的变化,一个类的子类经常面临着剧烈的变化,但他却拥有比较稳定的接口。使用一种封装机制来“隔离这种
2017-05-26 19:24:49 695
原创 oracle常用命令
表空间创建 drop tablespace name_data including contents and datafiles; create tablespace name_data datafile ‘/data/file/name_data.dbf’ size 10240 m reuse autoextend on next 200 m maxsize unlimited;表空间
2017-05-26 19:15:49 269
原创 简单工厂模式
下班了,我们去食堂吃饭,食堂中有各色各样的菜色供大家选择,大家可以根据自己的口味选择不同的菜,而无论你选什么菜都是在这一个食堂被做出来的,这时候,“食堂”就是一个简单工厂。UML图从上图可以看出,工厂是具体的,Product是抽象的,里面的方法operation是virtual的,它的三个子类是具体的,子类中的operation覆盖父类的方法operation。 Factory能够根据客户的请求
2017-05-25 18:45:30 282
原创 什么是设计模式
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。接口和抽象类的区别: 1、abstract class 在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但
2017-05-25 18:19:48 747
原创 html框架标签
帧标签(框架标签):,放在一个帧文档的标签之前,也可以嵌在其他帧文档中;,定义一个帧内的行数,可用像素值或高度百分比;,定义一个帧内的列数,可用像素值或宽度百分比;,定义一个帧内的单一窗或窗区域;,定义在不支持帧的浏览器中显示什么提示;,规定帧内显示的HTML文档;,命名帧或区域以便别的帧可以指向它;,定义帧左右边缘的空白大小,必须大于等于1;,定义帧上下边缘的
2017-05-24 19:28:29 219
原创 html表单标签
,创建表单; action="...",接收数据的服务器的URL; method="...",HTTP的方法(get,,post),其中get是被反对使用的; enctype="...",指定MIME(Internet媒体类型); onsubmit="...",当提交表单时发生的内部事件; noreset="...",
2017-05-24 19:27:55 271
原创 html表格标签
,创建一个表格;,表格中的每一行;,表格中一行中的每一个格子;,设置表格头:通常是黑体居中文字;,设置表格格子之间空间的大小;,设置边框的宽度;,设置表格格子边框与其内部内容之间空间的大小;,设置表格的宽度.用绝对像素值或总宽度的百分比;,设置表格格子的水平对齐方式(left,center,right,justify);,设置表格格子的水平对齐方式(left,c
2017-05-24 19:27:01 278
原创 html链接标签
,创建超文本链接;,创建自动发送电子邮件的链接;,创建位于文档内部的书签;,创建指向位于文档内部书签的链接;,文档中不能被该站点辨识的其它所有链接源的URL;,定义一个链接和源之间的相互关系;链接标签注解:target="...",决定链接源在什么地方显示(用户自定义的名字,_blank,_parent,_self,_top);rel="...",发送链接的类型
2017-05-24 19:26:09 404
原创 html基本标签
基本标签:空格   换行 ,创建一个HTML文档;,设置文档标题和其它在网页中不显示的信息;,设置文档的标题;,最大的标题;,下划线,黑体字;,斜体字;,加重文本(通常是斜体加黑体);,设置字体大小从1到7,颜色使用名字或RGB的十六进制值;,上标字;,下标字;...字体颜色;...最小字体;...无限增大
2017-05-24 19:25:12 229
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人