自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(220)
  • 资源 (3)
  • 论坛 (3)

原创 linux常用命令总结一

rm -rf * //删除所有rm dubbo-admin-tomcat //删除文件ps -ef | grep java //查看正在跑的进程kill -9 10898tail -500f catalina.out //查看tomcat启动日志最近500行more catalina.out //可以空格键翻页,=输出当前行号,v进入vi编辑,q退出moreless...

2018-08-09 11:21:20 134

原创 linux常用命令总结二(chown/sed/echo/ls/vim/scp/awk/tree)

chown通过chmod可以修改一个文件的权限,也可以修改文件所有者及用户组。chown是change owner 的缩写。chown -R用来同时修改目录下的子目录和文件(-R表示递归)。 创建用户useradd changhfpasswd changhf将目录/usr/test及其下面的所有文件和子目录的用户组改成changhfsu //到root目录下执行下面的命...

2018-04-17 14:43:52 385

原创 常用DDL语句

1、修改字段名称ALTER TABLE t_user_login_log CHANGE device_id session_id VARCHAR(256);2、修改注释ALTER TABLE t_user_login_log MODIFY COLUMN session_id VARCHAR(256) COMMENT '上次登录的sessionId';3、创建唯一索引ALT...

2017-03-25 16:21:00 537

原创 Fastjson与Jackson

FastJson常用操作一、java 创建json对象获取到post请求,利用JSON API获取到相应的参数,解析成程序需要的对象。String msgPara ="{\"empNames\":[{\"empName\":\"lihz\"},{\"empName\":\"changhf\"}],\"message\":\"aaa\"}&quot

2014-08-08 10:57:56 2434

原创 网页爬虫--未完成

xpath表达式// 选取文档中所有匹配的节点@选取属性/从根节点选取匹配的节点

2020-10-04 20:10:22 39

原创 mybatis 自定义插件

mybatis插件扩展机制我们可以基于mybatis插件机制实现分页、分表、监控等功能,mybatis四大组件包括Executor、StatementHandler、ParameterHandler、ResultSetHandler,他们提供了简单易用的插件扩展机制。插件扩展需两步:1、实现Interceptor/** * 通过Intercepts和Signature两个注解,定义插件拦截哪个核心对象里的哪个方法 */@Intercepts({ @Signature(typ

2020-10-03 21:50:42 1402

原创 uml图标

1、比较难理解的是聚合与组合的关系;箭头在哪边,哪边是主语;举例说明:汽车与 轮胎 是组合关系,实心菱形aggregation聚合空心菱形has-a茶杯和水composition组合实心菱形part of汽车与轮胎2、实线三角箭头与虚线三角箭头继承实现实线箭头虚线箭头...

2020-09-24 15:43:42 27

原创 模板模式与观察者模式

我们常把 23 种经典的设计模式分为三类:创建型、结构型、行为型。分别用来解决什么类型的问题?创建型设计模式:对象的创建结构型设计模式:类或对象的组合或组装行为型设计模式:类或对象之间的交互设计模式就是用来解耦的创建型模式是将创建和使用代码解耦结构型模式是将不同功能代码解耦行为型模式是将不同的行为代码解耦模板模式模板模式基于继承来实现,回调基于组合来实现在模板模式经典的实现中,模板方法定义为 final,可以避免被子类重写。需要子类重写的方法定义为 abstract.

2020-09-23 14:14:51 41

原创 gradle与groovy

一、下载安装1、下载地址https://gradle.org/install/下载zip包,解压得到文件夹gradle-6.1配置环境变量GRADLE_HOME,并且添加到Path,path=GRADLE_HOME\bin2、验证gradle -v二、构建每一个 project 是由一个或多个 tasks 构成的。一个 task 代表一些更加细化的构建。可能是编译一些 classes, 创建一个 JAR, 生成 javadoc, 或者生成某个目录的压缩文件。gradle 命令会在当前目

2020-09-23 10:47:22 86

原创 单元测试的意义与技术选型

技术选型:junit4+jmockit1.5+jacocoJunit4用于编写单元测试,通过编写正常的业务流程,并进行相应的断言测试,来验证接口。JMockit是google code上面的一个java单元测试mock项目,它很方便地让你对单元测试中的final类,静态方法,构造方法进行mock,主要是通过jmockit模拟一个返回对象。jacoco用于统计单元测试覆盖率,其他相似工具如Cobertura、Emma、Clover。问题现状单元测试不要追求覆盖率,测试的是类或方法,而不是模块.

2020-09-18 23:01:11 30

原创 code design原则有哪些?

1、单一职责原则2、开闭原则对扩展开放,对修改关闭,概念不好理解,应用时尽量预留扩展点,避免新增功能时对老代码的修改。在众多的设计原则、思想、模式中,最常用来提高代码扩展性的方法有:多态、依赖注入、基于接口而非实现编程,以及大部分的设计模式(比如,装饰、策略、模板、职责链、状态等)。3、里氏替换原则子类不能修改父类功能与多态是有区别的,多态是能力,可以实现多种功能的能力。父类定义的方法,如银行卡提现不能超出余额,如果子类要扩展一个信用卡可以超出余额的方法,可以通过另外定一个父类方法,而不

2020-09-18 15:18:21 37

原创 Netty内部组件关系

bossGroup与WorkerGroupnetty抽象出两组线程池,BossGroup用于接收客户端连接,WorkGroup用于处理网络读写。两者类型是NioEventLoopGroup,由NioEventLoop组成。每个NioEventLoop表示一个不断循环的,执行任务处理的线程,每个NioEventLoop 都有一个Selector与之对应,用于监听绑定在它上面的连接,连接上面的事件都是由该线程来处理。每个 Boss NioEventLoop 会监听 Selector 上连接建立的 accep

2020-09-16 18:33:16 31

原创 app用户绑定多台设备实现踢出功能

需求1、登录有效期固定7天2、活体验证成功有效期通过字典配置,默认为7天3、活体验证失败次数通过字典配置,默认为3次,超过3次,账户锁定24小时有效期,用户启用后,删除缓存;一旦验证成功,删除缓存;4、用户设备绑定数量通过字典配置,默认2台实现技术方案1、利用redis的sortedSet有序集合,绑定多台设备,以及踢出功能2、利用redis的hash实现登录状态缓存一、封装sortedSet api @Override public Boolean exists(S.

2020-09-15 16:39:22 36

原创 mysql高频问题记录

1、谈谈mysql的事务隔离级别事务并发处理可能会带来一些问题,比如:更新丢失、脏读、不可重复读、幻读等。更新丢失当多个事务更新同一行记录,会产生更新丢失现象。可以分为回滚覆盖和提交覆盖。回滚覆盖:一个事务回滚操作,把其他事务已提交的数据给覆盖了。提交覆盖:一个事务提交操作,把其他事务已提交的数据给覆盖了。脏读一个事务读取到了另一个事务修改但未提交的数据。不可重复读一个事务中多次读取同一行记录不一致,后面读取的跟前面读取的不一致。幻读一个事务中多次按相同条件查询,结果不

2020-09-06 13:10:14 106

原创 google浏览器扩展插件无法自动扩展

最近要加个xpath的浏览器插件,下载crx文件后,死活拖不进浏览器。任务难事都经不起研究,解决办法如下:将crx文件改后缀为rar文件加压文件打开浏览器扩展程序,点击加载已解压的扩展程序,选择解压的文件夹...

2020-08-16 16:51:38 32

原创 rocketmq初体验

用户说明书用户说明书下载安装当前最新版本4.7.1,下载binary版本然后解压得到文件夹rocketmq-all-4.7.1-bin-releaseconf文件夹得到以下三种方式的broker配置文件、logback日志配置文件等启动命令找到启动和关闭的脚本mqbroker,mqshutdown和mqnamesrvNameServer需要先于Broker启动,且如果在生产环境使用,为了保证高可用,建议一般规模的集群启动3个NameServer,各节点的启动命令相同1、启动Name S.

2020-07-12 22:33:28 73

原创 Redis实现分布式锁

秒杀类场景特点是操作是单线程的,不用synchronized原因是:无法做到细粒度控制;只适合单点不适合集群。大多数项目采用分布式锁,实现方式可以为缓存redis/zk/数据库。分布式场景中,需要提供一种跨jvm的互斥机制来控制共享资源的访问。分布式锁的特点:一个方法同一时间只能被一个机器的一个线程执行;高可用、高性能的获取释放锁;具备可重入性;具备锁失效机制,防止死锁;非阻塞式,即没有获取到锁时直接返回失败;CAP理论:任何一个分布式系统都不能同时满足一致性、可用性和分区容错性

2020-07-05 21:22:28 43

原创 Redis主从

Redis哨兵模式故障切换(Failover)哨兵模式(sentinel)哨兵是一个独立的进程,单个哨兵可能挂掉,多个哨兵不仅监控各个redis服务器,而且哨兵之间互相监控,检测哨兵是否还活着

2020-07-05 21:20:23 47

原创 Redis应用记录

下载安装下载最新版redis-3.2.6.tar.gz参考网络文章安装,设置为linux服务,开机启动并添加到环境变量启停脚本service redis start/stop#通过redis-cli客户端验证启动状态 ./redis-cli将 Redis 添加到环境变量中,并使之生效# 使配置生效: source /etc/profile默认情况下,Redis 开启安全认证,可以通过/usr/local/redis/conf/6379.conf 的 requirepass 指

2020-07-05 21:08:22 66

原创 nginx常用模块记录

nginx拥有丰富的模块,如何向其中添加各种官方、第三方的功能模块,如何通过修改配置文件来增强nginx的功能将是一个漫长的学习过程。负载均衡创建多个tomcat实例,通过配置反向代理来实现goAccess实现可视化并监控实时日志用GoAccess实现可视化并实时监控日志wget https://tar.goaccess.io/goaccess-1.4.tar.gztar -xzvf goaccess-1.4.tar.gzcd goaccess-1.4/./configure --enabl

2020-06-24 17:05:12 56

原创 java应用诊断工具-arthas

arthas是阿里开源的java诊断工具,支持在线排查问题,动态跟踪java代码,实时监控jvm状态,采用命令行交互模式一、安装arthas-bootcurl -O https://alibaba.github.io/arthas/arthas-boot.jarjava -jar arthas-boot.jar #启动进入arthas交互界面java -jar arthas-boot.jar -h #打印帮助信息二、demo操作curl -O https://alibaba.githu

2020-05-15 15:12:55 34

原创 poi报表相关jar包

poi用于报表导入导出,excel分为2003和2007版本的api,引入以下poi jar包是避免各种的异常的前提,poi官方文档晦涩难懂,此处记录下,不要多导包,也不要少导包,poi包中collections4<dependency> <groupId>org.apache.xmlbeans</groupId> ...

2019-12-18 16:17:26 37

原创 dubbo接入sentinel

一、控制台安装https://github.com/alibaba/Sentinel/wiki/%E6%8E%A7%E5%88%B6%E5%8F%B01、release页面下载jar包2、启动命令java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-da...

2019-11-26 21:59:19 421

原创 dubbo2.5.3升级到2.7.3记录

maven坐标1、dubbo替换为<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>${dubbo.version}</version></depend...

2019-11-26 21:57:53 1854

原创 sentinel对比hystrix

概念Sentinel 的控制台(Dashboard)是流量控制、熔断降级规则统一配置和管理的入口,同时它为用户提供了多个维度的监控功能。在 Sentinel 控制台上,我们可以配置规则并实时查看流量控制效果。默认用户名和密码都是 sentinel2、Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。启动步骤:1、下载s...

2019-11-26 21:49:44 393

原创 drools使用记录

常用APIKIE是jBoss里面一些相关项目的统称,其中我们比较熟悉的就有jBPM和Drools。这些项目都有一定的关联关系,并且存在一些通用的API,比如说涉及到构建(building)、部署(deploying)和加载(loading)等;jBoss通过KIE将jBPM和Drools等相关项目进行了一个整合,统一了他们的使用方式,提供了常见的公共API如KieServices、KieCo...

2019-08-09 15:30:09 42

原创 springcloud gateway与zuul

了解springcloud Gateway网关作为流量的入口,常用功能包括路由转发、权限校验、限流控制等。而springcloud gateway作为SpringCloud官方推出的第二代网关框架,取代了Zuul网关。 <dependency> <groupId>org.springframework.cloud</groupId>...

2019-06-18 22:21:12 8112 1

原创 安全模块springboot security

为什么用springboot security?1、Spring Security是一个安全组件,为java企业级开发提供了全面的安全防护。它可以在Controller层、Service层、DAO层等以加注解的方式来保护应用程序的安全。SpringSecurity提供了细粒度的权限控制,可以精细到每一个API接口,每一个业务方法,或者每一个DAO层的方法。SpringSecurity提供的是应用...

2019-06-16 14:24:26 391

原创 微服务监控模块springboot Admin

springboot admin用于管理和监控springboot程序,监控内容包括springboot的监控组件Actuator的各个http节点,也支持Turbine、Jmx等更高级的功能;通过以下参数关闭Actuator模块的安全验证management: security: enabled: false程序启动类通过@EnableAdminServer注解开启Admin...

2019-06-16 14:16:43 399

原创 SpringCloud声明式服务调用Feign

springcloud Feign是一个工具,它不仅整合了ribbon和hystrix两个强大功能,还提供了一种声明式的web服务端定义方式。Feign提供了可插拔的注解支持,只需给接口添加注解配置,即可完成对服务提供方的接口绑定。通过在应用主类上添加@EnableFeignClients注解开启Feign的支持功能。定义接口,通过@FeignClient注解指定服务名来绑定服务,服务名不...

2019-06-12 22:19:41 78

原创 spring-oauth2总结

OAuth2协议流程授权服务器也叫认证服务器(Authorization Server)1、用户打开客户端以后,客户端要求用户给予授权。2、用户同意给予客户端授权。3、客户端使用上一步获得的授权,向认证服务器申请令牌。4、认证服务器对客户端进行认证以后,确认无误,同意发放令牌。5、客户端使用令牌,向资源服务器申请获取资源。6、资源服务器确认令牌无误,同意向客户端开放资源。第2步很重...

2019-06-12 09:39:05 379

原创 springcloud首个项目遇到的坑

项目用springcloud + springboot +nacos用到nacos的服务注册中心和配置中心首先是版本问题:springcloud&springboot版本官方版本关系总结个大版本图Release TrainBoot VersionGreenwich2.1.xFinchley2.0.xEdgware1.5.xDals...

2019-05-15 21:11:23 882

原创 spingcloud总结

springcloud是一个基于springboot实现的微服务架构开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、分布式会话和集群状态管理等操作提供了一种简单的开发方式。springcloud是一个拥有多个子项目的大型综合项目,可以说是微服务架构解决方案的综合套件,各个子项目也都独立进行着内容更新和迭代,因此springcloud的版本都会包含不同版本的子项目,为避免sp...

2019-05-12 22:03:22 137

原创 断路器Hystrix以及监控大盘

概念断路器本身是一种开关装置,概念来自电学,当线路中有电器发生短路时,及时切断故障电路防止线路过载、发热导致火灾等。分布式系统架构中,当某个微服务出现故障后,通过断路器的故障监控,向调用方返回一个错误响应而不是长时间的等待,这样可以避免某个线程被长时间占用不释放,导致服务器雪崩的可能。SpringCloud Hystrix是基于Netfix Hystrix做的二次开发,该框架目标在于通过控制那...

2019-05-12 13:35:21 180

原创 Eureka+Ribbon搭建微服务

Eureka注册中心springcloud Eureka是基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。Eureka服务端即服务注册中心;Eureka客户端,主要处理服务的注册与发现。客户端服务通过注解和参数配置方式,嵌入在客户端应用程序中,应用启动时向注册中心注册自身服务,并周期性的发送心跳来更新他的服务;<!--springcloud工...

2019-05-11 20:21:55 978

原创 springboot监控

依赖JavaEE规范中,通过jmx对应用进行监控和管理,springboot提供了Actuator功能来完成类似的监控,通过http/jmx/ssh来查看springboot应用的配置、各种指标、健康程度等。只需引入依赖:<dependency> <groupId>org.springframework.boot</groupId> <...

2019-05-11 15:46:49 3005

原创 加密方式再总结

加密方式分为:单向加密和双向加密。单向加密该方式不可逆:MD5摘要算法md5加密后密文是固定的的,所以长度也是固定的,长度比加密数据小很多。应用场景密码存储、信息完整性校验等信息完整性校验如文件是否被篡改,先计算其摘要,如果再有一个第三方认证机构发放证书,就是数字签名的原理。双向加密该加密方式可逆,包括对称加密和非对称加密。1、对称加密即加解密密钥相同,常见对称加密有AES/...

2019-05-05 14:46:42 197

原创 分布式事务解决方案(本地事件+mq)

分布式事务消息常见解决方案有:两阶段提交(2PC)、补偿事务(TCC)、本地事件表加消息队列、mq事务消息等。两阶段提交原理:最终一致性解决方案以新用户注册新增一条积分记录为例,所需考虑的场景:1、保存用户记录后没来得及想消息队列发送消息就宕机了,如何保证mq消息发送?2、积分系统收到消息后没来得及保存记录就宕机了,如何保证系统重启后不丢失积分记录?需要在db1和db2中分...

2019-05-01 19:44:15 817

原创 springboot单元测试

springboot对单元测试的支持十分完善,需要引入的jar包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test&...

2019-05-01 13:46:20 79

原创 nodejs记录

默认安装cmd窗口命令测试npm -vnode -v在安装目录下创建两个文件夹node_global和node_global修改个人环境变量的path为D:\software\nodejs\node_global\node_modulescmd执行如下命令npm config set prefix "D:\software\nodejs\node_global"npm confi...

2019-04-30 12:13:05 75

RMI基础代码小程序

基础代码

2016-07-15

rmi服务端与客户端小程序

亲测可用,可作为java rmi入门程序,一看即懂。

2016-07-15

servlet实现身高体重比测试

通过学习该程序可以掌握servlet的执行过程,掌握el表达式的用法

2015-10-10

个人分类默认展开

发表于 2018-04-27 最后回复 2018-05-16

即时通讯

发表于 2017-05-04 最后回复 2017-06-06

Window CE设备 DataGrid选择多行问题

发表于 2015-01-16 最后回复 2017-05-04

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