- 博客(27)
- 收藏
- 关注
原创 dubbo validation,ValidationFilter
dubbo可以实现类似spring mvc validation一样的功能,基于注解实现参数的校验此处默认认为已经有可用的 dubbo环境,,测试项目使用 SpringBoot 2.X + dubbo2.7.X1、添加 校验相关的 依赖<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId>
2021-09-09 16:44:12
1127
原创 btrace使用
btrace可以在线上运行的程序,不重启的情况下动态改变类下载btrace, 网上说需要什么gradle,其实不需要btrace使用有很多限制,比如不允许创建对象,不允许抛出异常等等,所以一般只能使用BTraceUtils工具类的方法先构建一个普通的web项目A,里面有一个接口,启动这个项目@RestController@RequestMapping("/user")pu...
2019-01-11 14:24:54
507
原创 事物传播性失效 以及定制化json输出
public class XXXService{ @Transactional public void a(){ b(); } @Transactional(propagation = Propagation.REQUIRES_NEW) public void b(){ }}方法a调用b,b...
2018-09-27 20:06:01
137
原创 数据结构-队列
队列,是一种先进先出的 数据结构,类似于 排队取票, 排在前面的先取票使用java数组实现简单的队列 ,当然,也可以用链表实现public class Queue { private Integer[] elements; private int items; private int size; private int front; private in...
2018-03-12 14:46:57
155
原创 数据结构 - 栈
栈是一种后进先出的数据结构,想象成一个 杯子,后面放进去的东西在上面,会被先取出来以下是用java 数组实现的简单的栈public class Stack { private int top; private int maxSize; private char[] elements; public Stack(int maxSize) { thi...
2018-02-26 21:23:15
113
原创 简单排序
package arithmetic;import junit.framework.TestCase;public class Simple extends TestCase{ int[] array={8,10,5,12,9,22,3}; /** * 冒泡排序 * 效率O(N*N),比较N*N/2,交换N*N/4 */ ...
2018-02-23 10:12:00
119
原创 二分查找
二分查找,适应于有序的集合,也叫 折半查找,写了两种实现,递归与 非递归的public class BinarySearch { public static void main(String[] args) { int[] arra = {1, 3, 5, 7, 9, 11,12,19,23,28}; //int index = midSearch
2018-01-31 16:35:42
149
原创 sonar 代码扫描
到官网下载 sonar-scannerscanner支持maven插件形式, jenkins,此处使用的是基于命令行的,不依赖于其他官网下载scanner的zip包,解压进入conf,打开sonar-scanner.properties 文件此处,host.url是服务器地址,因为sonar扫描的结果会上传到服务器配置环境变量
2017-09-06 13:34:44
6475
原创 sonar 安装运行
sonarqube是一款代码质量扫描工具,查看代码中的bug安装方式:到官网下载 sonarqube的安装包我这边下载的是6.4的版本,是一个zip压缩包,解压后sonar需要数据库的依赖我这边安装好了mysql,创建一个叫 sonar的数据库,编码指定utf8 ,排序规则指定了utf8_bin,因为 utf8_bin是大小写敏感的,此处是sonar要求
2017-08-23 12:23:19
351
原创 quartz集群
项目中往往部署多台 tomcat,但是项目中集成了quartz的话,每台tomcat中的项目都会执行,就导致了job执行多次,quartz集群环境下,允许部署多台,但是只有一台会执行,而且一台宕机,还能有一台会执行 以下是spring boot整合quartz 集群,quartz集群是基于数据库的,把job保存到数据库里面,执行的时候,谁先获取到 数据库的锁,就拥有了执行权限,
2017-08-21 11:37:50
571
原创 spring 整合 quartz
新建一个class,ActivityJob,创建一个执行定时任务的方法,execute public class ActivityJob{ public void execute() throws Exception{ System.out.println("my job is running"); }}引入jar包
2017-08-21 11:34:47
160
原创 quartz 简单使用
quartz是一个 java的 定时任务调度框架//定义一个jobclass HelloJob implements Job{ public void execute(JobExecutionContext context) throws JobExecutionException{ System.out.println("job运行"); }}
2017-08-21 10:16:02
253
原创 httpAysnClient使用
项目中经常会需要发送HTTP请求,我这边使用的是apache的 httpClient包,但是httpClient支持的是同步请求, apache提供了一个 httpasyncClient,基于java NIO网上看了不少资料,发现写的不是很具体,有点像是小的demo,无法再生产环境运行 String url="http://www.xxxxx.com"; IO
2017-08-01 14:46:49
3726
原创 nio selector简单使用
Server端代码:public class ServerSocket { public static final int PORT=9888; public static void main(String[] args){ try { ServerSocketChannel serverSocketChannel=ServerSoc
2017-07-27 18:16:15
240
原创 nio filechannel
nio fileChannel使用: try(FileInputStream in=new FileInputStream("D:/soft/Evernote_6.5.4.4720.exe"); FileOutputStream out=new FileOutputStream("E:/Evernote_6.5.4.4720.exe"); Fil
2017-07-27 18:07:11
186
原创 ThreadPoolExecutor使用
ThreadPoolExecutor是 java提供的一个线程池工具类 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,
2017-07-21 08:48:20
401
原创 Exchanger 线程之间数据传输
java Exchanger类用于在线程之间传输数据class ExchangeOne implements Runnable{ Exchanger exchanger; public ExchangeOne(Exchanger exchanger){ this.exchanger=exchanger; } @Override pub
2017-07-19 16:03:57
270
原创 semaphore信号量使用
semaphore允许 指定数量的线程同时运行,比如有5件商品,现在同时有10个人同时在买,只允许前面5个买成功class Work implements Runnable{ private Semaphore sem; public Work(Semaphore sem){ this.sem=sem; } @Override pu
2017-07-19 15:24:22
464
原创 CyclicBarrier源码浅析
CyclicBarrier内部实现很简单,利用ReentrantLock 和 Condition控制并发,初始化的时候创建一个 计数器,每线程调用await方法的时候 计数器减1,再判断计数器是否等于0,等于0的话,就唤醒所有 await的线程,不等于0的话,就调用condition的await方法等待 public CyclicBarrier(int parties, Runnabl
2017-07-19 13:31:11
209
原创 CyclicBarrier使用
CyclicBarrier 允许一组线程到达某个 屏障的时候阻塞,比如5个线程,前面4个线程无论谁到达的时候都会阻塞,当最后一个线程到达的时候,所有的线程就都会唤醒执行
2017-07-19 11:29:45
186
原创 CountDownLatch使用
CountDownLatch, 允许一组线程都完成后再执行某些事情,例如A 线程需要等待 B C D线程 都执行完成后再执行 public static void main(String[] args) throws InterruptedException { CountDownLatch latch = new CountDownLatch(2); ...
2017-07-18 21:06:12
321
原创 HashMap浅析
HashMap应该是java中用的很频繁的数据结构,最近几天研究了下HashMap源码,了解的不算很多,讲讲我的体会我看的是JDK1.8的HashMap,1.7跟1.8还是有些区别的先看看HashMap源码中的关键变量: static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 默认容量16static fi...
2017-07-04 21:36:20
356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人