自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 spring boot 自定义Enable注解

spring boot 自定义enable注解

2023-02-03 15:18:38 378

原创 自定义spring-boot-starter

自定义spring-boot-starter

2023-02-01 20:05:27 96

原创 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

原创 ArrayBlockingQueue浅析

ArrayBlockingQueue浅析

2017-07-07 08:51:44 227

原创 HashSet浅析

HashSet浅析

2017-07-07 08:35:23 284

原创 LinkedList浅析

LinkedList浅析

2017-07-06 18:46:52 337 1

原创 HashMap浅析

HashMap应该是java中用的很频繁的数据结构,最近几天研究了下HashMap源码,了解的不算很多,讲讲我的体会我看的是JDK1.8的HashMap,1.7跟1.8还是有些区别的先看看HashMap源码中的关键变量: static final int DEFAULT_INITIAL_CAPACITY = 1 &lt;&lt; 4; // 默认容量16static fi...

2017-07-04 21:36:20 356

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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