- 博客(18)
- 收藏
- 关注
原创 使用springboot+dubbo+zookeeper构建搭建生产者平台
使用springboot+dubbo+zookeeper构建搭建生产者平台引入 maven pom文件 org.springframework.boot spring-boot-starter-parent 1.5.8.RELEASE org.springframework.boot spring-boot-starter
2017-11-14 16:02:12
732
原创 synchronized
synchronized下面两种写法是等效的 推荐使用t2 尽量锁住最小的同步单位 synchronized void t(){ } void t2(){ synchronized(this){ }}这两种也是等效的 static synchronized void t(){ } static void t1()
2017-11-07 13:30:57
262
原创 dubbo源码 学习笔记(六)
使用注解来进行暴露服务和引用服务生产者public class ProviderAnnotation { public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContex
2017-11-01 21:11:45
259
原创 dubbo源码 学习笔记(五)
dubbo 接口 Validator字dubbo的过滤器中 自带了一个javax.validation的验证器服务端配置service.setValidation("jvalidation");xml的配置方式 引入jar包 javax.validation validation-api 1.0.0.GA
2017-10-27 16:13:53
369
原创 dubbo源码 学习笔记(四)
dubbo 通讯协议之injvmpublic class Provider1 { public static void main(String[] args) throws IOException { ApplicationConfig app = new ApplicationConfig("provider"); List registries = new ArrayL
2017-10-26 10:49:38
298
原创 dubbo源码 学习笔记(三)
不使用spring配置 的 dubbo例子生存者public class Provider { public static void main(String[] args) throws IOException { ApplicationConfig app = new ApplicationConfig(); app.setName("provider");
2017-10-25 17:15:06
694
原创 dubbo源码 学习笔记(二)
dubbo源码中提供一个demo其中包含3个项目:api provider consumerapi中定义了一个接口 供其他两个引用public interface DemoService { String sayHello(String name);}在provider中提供了上面接口的一个实现public class DemoService
2017-10-25 14:48:10
211
转载 dubbo源码 学习笔记(一)
首先从github把dubbo源码下载,导入到eclipse中dubbo主要由这几个模块构成dubbo-admin:管理平台dubbo-cluster:负责集群,负载均衡dubbo-common:公共包dubbo-config:配置管理dubbo-container:容器dubbo-filter:过滤器dubbo-monitor:监控dubbo-regist
2017-10-25 14:23:31
252
原创 动态设置线程栈大小
在做一些算法开发的时候 我们经常在使用递归的时候 经常会遇到堆栈溢出,通常我们会想到设置jvm的参数来增加线程栈大小,但是这种会造成每个线程的栈都变的很大,此处介绍一个在代码中扩大线程栈大小。public Thread(ThreadGroup group, Runnable target, String name, long stackSize)
2017-10-24 14:26:46
3159
原创 短信接口防刷攻略
目前大部门互联网公司都会用到短信接口,但是目前短信端口很容易被不法分子拿去当作短信轰炸机,造成公司和个人的损失。针对如此,我们会采用一系列安全措施来限制别人来刷。1、限制手机号的发送频率缺点:可以被利用同时发给不同手机2、现在请求端的ip访问频率缺点:可以被动态代理服务器攻击3、验证码优点:此方法基本上可以防止短信接口被刷,目前也有政府,银行等项目采用此方法确定:用
2017-10-24 10:09:52
2747
2
原创 类初始化步骤
public class Instace1 {static{System.out.println(1);}{System.out.println(2);}public Instace1() {System.out.println(3);}{System.out.println(4);}public static void
2017-10-23 17:10:09
366
原创 单例工厂SingletonFactory
public class SingletonFactory { @SuppressWarnings("rawtypes") private static Map instaces = new ConcurrentHashMap(); @SuppressWarnings("rawtypes") private static Map> weakReferenceInstaces = new C
2017-10-13 10:57:25
5362
1
原创 使用synchronized产生死锁
public void sync() { final Object object1 = new Object(); final Object object2 = new Object(); Executor executor = Executors.newFixedThreadPool(2); executor.execute(new Runnable() { public
2017-10-12 17:09:13
1659
原创 使用lock 产生死锁
public void lock(){ final Lock lock1 = new ReentrantLock(); final Lock lock2 = new ReentrantLock(); Executor executor = Executors.newFixedThreadPool(2); executor.execute(new Runnable() { pu
2017-10-12 16:56:44
1424
原创 ReadWriteLock 读写锁测试
static final ReadWriteLock lock = new ReentrantReadWriteLock(true); static Executor executor = Executors.newFixedThreadPool(4); public static void main(String[] args) { //创建双读双写的线程 executor.exe
2017-10-12 16:32:28
786
原创 字符串替换
static String commond(String str, Map args) { Pattern p = Pattern.compile("\\$\\{(.*?)\\}"); Matcher m = p.matcher(str); List strs = new ArrayList(); List rep = new ArrayList<>(); while (m.f
2017-10-12 11:51:23
261
原创 ThreadLocal 及其应用
public class SyncSimpleDateFormat extends SimpleDateFormat { /** * * */ private static final long serialVersionUID = 1L; private ThreadLocal local = new ThreadLocal(); private String patte
2017-10-11 15:47:59
319
原创 volatile关键字的测试
public class VolatileTest { volatile int x = 1; Executor executor = Executors.newFixedThreadPool(4); public static void main(String[] args) { new VolatileTest().run(); } void run(){ ex
2017-10-11 14:27:06
718
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人