自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 程序员小工具(不定期更新)

1  windows命令行工具cmder各种好用,试了就知道,可以在user-aliases.cmd文件中添加下面命令,支持la和lsla=ls -aF --show-control-chars -F --color $*ll=ls -alF --show-control-chars -F --color $* 2  文件搜索工具Everything速度是windows...

2019-02-22 22:45:03 6965 18

原创 linux指令(不定期更新。。。)

1  通过端口号来查询一个进程的pid,并通过pid来关闭进程netstat -anp|grep [端口号]kill -9 [pid]2  查询linux内核版本  lsb_release -a3 从本地传文件到服务器scp xx.txt root@x.x.x.x:/xx/xx.txt ...

2017-10-16 14:54:13 248

原创 rocketmq部署远程访问

1 按照官网文档部署没有太大问题,部署在远程访问有几点需要说明。2 修改内存配置,默认需要的内存实在太大,文件是runserver和runbroker。3 修改conf/broker.conf,加上namesrvAddr=xxx.xxx.xxx.xxx:9876brokerIP1=xxx.xxx.xxx.xxx改成你的公网ip就行4 broker启动需要指定配置文件,设置...

2019-12-01 01:44:47 3515

原创 springboot2.0部署到was8.5

公司使用的是was9,在本机上测试,只找到了was8.5的安装包,所以使用was8.5来演示部署springboot2.01 部署过程中出现的最大问题,spring boot2.0使用的是validation-api-2.0.1.Final.jar,这个jar会和was本身的 javax.j2ee.validation.jar冲突,导致项目启动报NoClassDefFoundE...

2019-03-03 16:18:51 4258 7

原创 tomcat部署springboot遇到的一些问题

1 在tomcat6x中严重:Parse error in application web.xml file at jndi:/localhost/xx/WEB-INF/web.xmljava.net.UnknowHostException: java.sun.com...2 在tomcat8x中java.io.FileNotFoundException: Could not re...

2019-02-26 12:45:53 204

原创 在centos7.5上搭建svn服务器

1  安装svnyum install subversion2  创建svn版本库svnadmin create /opt/svnrep/mywork3  修改conf下的三个配置文件authzpasswdsvnserve.conf4  启动svnsvnserve -d -r /opt/svnrep/mywork5  小乌龟访问,地址到IP...

2019-02-25 20:24:53 234

原创 springboot打war包部署到tomcat

1 修改默认打包方式 <packaging>war</packaging>2 web组件中去掉内置tomcat <dependency> <groupId>org.springframework.boot</groupId> <artif...

2019-02-25 14:17:06 123

原创 Jenkin在centos7.5上安装

本文只展示jenkins最最最!!!基本的用法!!!本次采用rpm的安装方式1  wget https://pkg.jenkins.io/redhat-stable/jenkins-2.150.3-1.1.noarch.rpm 下载rpm包到服务器上。2  执行 rpm -ivh jenkins-2.150.3-1.1.noarch.rpm 进行安装,安装完成后可用 rpm -ql j...

2019-02-23 20:09:42 224

原创 2019.02.22

学如逆水行舟,不进则退。

2019-02-22 22:24:22 283

原创 db2

db2 查询表字段信息   select * from sysibm.syscolumns where tbname = '表面'

2017-11-21 15:10:51 225

原创 两种static实现单例

1、静态变量在类加载时进行初始化,并且只被初始化一次,可以实现单例。public class Singleton { private static Singleton instance = new Singleton(); private Singleton(){} public static Singleton getInstance(){ retur

2017-10-17 14:59:42 551

原创 递归遍历树结构

遍历树结构有三种顺序,根左右,左根右,左右根。1、构造树结构public class TreeNode { public TreeNode left; public TreeNode right; public T data; public TreeNode(T data) { this.data = data; }}

2017-10-17 14:02:24 771

原创 看一个接口回调的例子

这个例子做了一个客户端发消息到服务端的场景。1、接口回调,顾名思义,就是用接口来执行方法调用。public interface Call { void process(String status);}2、这个接口想在哪儿使用都可以。public class Server { public void getClientMsg(Call call, Stri

2017-10-16 13:18:15 812

原创 管理所有Filter

看到了一种用一个Filter来管理其他自定义的Filter的方法,通过filterList中元素的顺序可以自定义Filter执行的顺序。@Override public void init(FilterConfig filterConfig) throws ServletException { // 获取所有Filter List fil

2017-10-11 09:45:02 273

原创 一种缓存注入的写法

1、我们需要一个缓存接口public interface CacheService { Object get(String key); void set(String key, Object value); void delete(String key); void setCacheService(CacheService cacheService)

2017-10-10 16:14:15 621

原创 tomcat处理请求

参考资料:Tomcat7.0源码分析——请求原理分析(中)客户端和服务器之间的链接建立了,那接下来就要接受数据,处理请求,我们来看看是怎样实现的。1、我们之前创建了Acceptor线程类接受连接,成功连接以后就要进行处理socket了。 protected class Acceptor extends AbstractEndpoint.Acceptor {

2017-09-29 15:31:43 302

原创 tomcat建立连接

servlet应用放入tomcat中启动后就可以接受请求,那在tomcat中是怎么实现的呢?1、ProtocolHandler接口是真正处理请求的地方,这个接口是在Connector中初始化的。在Connector中有两个方法用来初始化和启动ProtocolHandler @Override protected void initInternal() throws

2017-09-29 13:53:41 620

原创 servlet初体验

使用servlet规范来编写一个应用1、继承HttpServlet抽象类就可以了@WebServlet("/hel")public class MyServlet extends HttpServlet { @Override public void service(ServletRequest req, ServletResponse res) throws

2017-09-29 11:18:35 156

原创 冒泡排序

public class BubbleSort { private int[] array; private int count; public BubbleSort(int[] array) { this.array = array; } /** * 冒泡排序就是拿一个数和剩下的数比较找出最小的, * 再用同样的方

2017-09-29 02:06:40 167

原创 适配器模式

适配器的目的和装饰有点类似,装饰对目标类的方法进行扩展,而适配器则是将不同的类进行转化,转化即引用不变但改变具体的实现,我们可以使用继承。1、北京人的信息public class BeiJingPerson { public String getName() { return "张三"; } public String getSex(){

2017-09-28 23:40:32 197

原创 装饰模式

1

2017-09-28 20:59:31 144

原创 smart-plugin-cache

学习黄勇smart-plugin-cache的笔记黄勇的码云地址:https://gitee.com/huangyong/smart-plugin-cachesmart-plugin-cache的缓存结构为三层map,第一层map的key为目标类,第二层map的key为目标类中的方法标识,每个方法可用注解自定义一个标识,对方法唯一,第三层map的key为方法名-参数值,对于相同的参

2017-09-28 16:44:20 270

原创 smart-plugin-job

学习黄勇smart-plugin-job的笔记黄勇的码云地址:https://gitee.com/huangyong/smart-plugin-jobjob封装了任务调度框架quartz的一些操作,可以做为插件集成在smart-framework中。public class JobHelper { private static final Logger logger

2017-09-28 15:23:56 223

原创 smart-rpc注册中心

学习黄勇smart-rpc的笔记黄勇的码云地址:https://gitee.com/huangyong/rpc黄勇的oschina博客地址:https://my.oschina.net/huangyong/blog/361751客户端要调接口,肯定要知道服务端的地址,我们可以把服务端地址告诉给客户端,也可以让客户端自己去寻找地址,注册中心就是这个作用,客户端调接口之前,先去注册

2017-09-27 16:46:45 307

原创 smart-rpc服务端

学习黄勇smart-rpc的笔记黄勇的码云地址:https://gitee.com/huangyong/rpc黄勇的oschina博客地址:https://my.oschina.net/huangyong/blog/361751服务端要干的事情,要发布接口,要监听从客户端发过来的请求,要执行本地的接口方法,将返回值写入响应中。1、把需要发布的接口初始化到内存中

2017-09-27 16:00:59 301

原创 smart-rpc客户端

学习黄勇smart-rpc的笔记黄勇的码云地址:https://gitee.com/huangyong/rpc黄勇的oschina博客地址:https://my.oschina.net/huangyong/blog/361751rpc是客户端把请求对象序列化成二进制通过网络传给服务端,服务端拿到这些二进制后反序列化成本地对象,执行本地方法调用,把生成的结果再用同样的方式传给客户

2017-09-27 14:34:58 228

原创 ThreadLocal

ThreadLocal 是把对象交给当前线程管理。每个Thread里有个ThreadLocalMap,内部为Entry数组,每个Entry的key为一个ThreadLocal实例,value为需要管理的对象。所以交给ThreadLocal管理的对象只与当前线程有关。1、ThreadLocal的set方法 public void set(T value) {

2017-09-26 15:41:26 187

原创 mvc实现

学习黄勇smart-framework的笔记黄勇的码云地址:https://gitee.com/huangyong/smart-framework黄勇的oschina博客地址:https://my.oschina.net/huangyong/blog/158380mvc就是将请求中的路径分配给对应的方法,一切都是从DispatcherServlet开始。/** *

2017-09-26 15:01:42 238

原创 aop实现

学习黄勇smart-framework的笔记黄勇的码云地址:https://gitee.com/huangyong/smart-framework黄勇的oschina博客地址:https://my.oschina.net/huangyong/blog/158380aop是一种实现业务的思想,对相互没有关联,但是又需要相同处理的类进行统一的增强,为了不改变类原有的方法,常用代理模

2017-09-26 14:18:12 247

原创 一个类加载例子

写个例子记录类加载过程的一点小事。1、来一个父类public class Father { static { System.out.println("我是Father的静态块"); } public Father() { System.out.println("我是Father的构造方法"); }}2、来一个

2017-09-26 09:30:07 234

原创 ioc 实现

ioc 主要提供两个功能,一个是初始化bean,另一个是注入bean。1、所需的注解/** * 定义需要 IOC 容器管理的 Bean 类 * * @author huangyong * @since 1.0 *///标识注解可以使用在接口和类上@Target(ElementType.TYPE)//标识注解在运行时可以被jvm或通过反射读取和使用(注解最常见的用法)@Re

2017-09-25 17:15:30 398

原创 smart-framework

我们不造轮子,不代表不会造轮子。

2017-09-25 16:21:18 1012

原创 io文件拷贝

使用io和nio进行文件拷贝1、io @Test public void iotest() throws Exception { InputStream in = new FileInputStream("C:\\shit.txt"); OutputStream out = new FileOutputStream("C:\\shit2.txt

2017-09-25 13:54:17 261

原创 ExecutorService

线程执行器public class ExecutorServiceClient { public static void main(String[] args) throws ExecutionException, InterruptedException { ExecutorService executorService = Executors.newFixedT

2017-09-25 01:54:53 272

原创 CyclicBarrier

CyclicBarrier的await方法会阻塞当前线程,只有当被阻塞的线程数达到了CyclicBarrier初始化的线程数时,才会同一时间唤醒所有线程。1、需要一个任务类public class CyclicBarrierTask implements Runnable { private CyclicBarrier cyclicBarrier; private

2017-09-25 01:26:16 214

原创 CountDownLatch

CountDownLatch的await方法可以阻塞当前线程,直到CountDownLatch初始化的计数器为0,才会唤醒线程。1、构造一个任务类public class Task implements Runnable { private CountDownLatch countDownLatch; private String name; privat

2017-09-25 00:57:26 167

原创 动态代理

动态代理和静态代理唯一的区别在于静态代理要实现增强,只能通过在代理类的方法中添加逻辑,而动态代理在方法调用时,将方法交给invocationHandler的invoke执行,实际调用的是Method的invoke,那么我们可以在invocationHandler的invoke方法前后添加逻辑,可以对方法统一增强。1、需要一个接口public interface IServer {

2017-09-25 00:51:16 180

原创 静态代理

静态代理,代理类可以当做被代理类来使用,所以他们要实现同一个接口。通常是将被代理类的实例通过构造传入代理类,用这个实例来执行方法。1、需要一个接口public interface IServer { void run();}2、需要一个被代理类public class Tomcat implements IServer { @Override

2017-09-24 22:31:00 159

原创 对象池模式

对象池是使用成员变量来存储生成的对象1、我需要一个放入池中的对象public class Teacher { @Override public String toString() { return "我是一个老师"; }}2、我需要池中对象的状态public class ObjectStatus { p

2017-09-24 21:46:46 225

原创 Deque

Deque也继承了Queue接口,所以具有和Queue相同的特性,相对于Queue的如果一端进,那另一端只能出,Deque的两端都可以进出,api的灵活组合可以实现不同的结构。用Deque来实现栈1、生产者public class Producer implements Runnable { private BlockingDeque queue; public P

2017-09-24 17:49:46 183

空空如也

空空如也

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

TA关注的人

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