- 博客(96)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 浅谈struts2工作流程
今天就把自己看的struts2源代码的体会与大家分享一下吧。讲到struts2就先讲一下过滤器,因为struts2靠的就是过滤器。当一个http请求过来的时候首先经过一系列配置的过滤器,然后到达struts2的核心过滤器StrutsPrepareAndExecuteFilter进行struts2的流程处理。过滤器和servlet差不多,实现servlet的方式是继承httpservlet而
2013-01-03 21:53:44
715
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 java虚拟机类加载器介绍
睡觉之前没事做就谈谈我最近看一些关于类加载器的经验吧。首先java先讲一下虚拟机初始化一个类的过程吧。首先一个java源文件编译成一个class文件 。当我们new一个类的对象的时候其实经过了3个步骤1加载(就是把编译的class文件由类加载器加载到java虚拟机中)2链接(个人的理解就分配一些静态区域)3初始化(个人认为就是执行了非静态的区域比如非静态块和构造器)。经过这3个步骤一个类就初始
2013-01-02 23:00:33
669
原创 欢迎使用CSDN-markdown编辑器
spring 理解很久没写博客了,就最近的问题记录一下吧,最近在项目中使用事务,以前一直没注意,今天发现事务不起作用,网上查了下配置的东西都配置,但是事务就是不起作用,后来定位发现 <tx:annotation-driven/> 很关键。 项目用的是springmvc 框架,定位发现是因为applicationContent.xml中没有扫描包,导致事务不可用,因为我的<tx:annotatio
2017-08-08 21:08:24
261
原创 fock join 列子
import java.util.List;import java.util.concurrent.RecursiveTask;public class MyCounter extends RecursiveTask { private static final long serialVersionUID = 1L; private List list; /** * 开始
2016-04-19 16:53:20
940
原创 java fock join 列子
package com.fock;public class Person { /** * 用户编号 */ private String id; /** * 用户名称 */ private String name; public Person(String id) { super(); this.id = id; } public Strin
2016-04-19 16:50:54
845
原创 keepalived 双击切换
用keepalived 来实现一个双节切换首先下载keepalived 我这边用的是keepalived-1.2.17.tar.gz准备2台机器 安装keepalived 一台做主机 一台做备机在安装nginx前,需要确保系统安装了openssl-devel,否则后面的编译不通过。yum install openssl-devel安装tar xzf keepaliv
2015-06-19 15:03:13
574
原创 nginx 负载均衡
nginx 可以作为一个web容器 提供类似于tomcat容器的作用,还可以作为反向代理服务器,作为反向代理服务器的作用主要是可以用来缓存一些前端静态的图片或者css等 来提高页面访问速度。还可以用来做负载均衡器下面讲的是 怎么用nginx 做负载均衡设备。首先安装nginx 怎么安装这边就不讲述了。主要是看nginx的配置文件#user nobody;worker_proces
2015-06-19 14:29:06
486
原创 CountDownLatch,CyclicBarrier,Semaphore
首先 说下 3者个人理解的区别:CountDownLatch:个人感觉他的功能是 有一个线程 中 开启了多个线程,然后这个线程要等待开启的所有线程结束后才能继续执行。CyclicBarrier:个人感觉就是多个线程运行到一个点然后等待多个线程都运行到那个点的时候 所有线程继续一起执行 类似于赛跑Semaphore:就是用来控制一个资源可以同时被几个人访问的 有点类似于锁Co
2015-05-18 20:24:30
455
原创 BTrace
在项目中有时候项目运行上线了碰到了问题,比如想看一个方法运行了多长时间,或者一个方法的返回参数和入参是多少,在不知道btrace的时候,只能更换class加入日志然后重启项目进行问题的定位,但是如果有了btrace 可以再遇到问题的时候在方法上面动态的增加观察 还没必要去在原来代码里面加入代码然后重启项目。首先要下载btrace的包,这个包可以去btrace的官网下载,然后安装也很简单 是绿
2015-05-13 14:06:01
566
原创 socket 理解
1个字节等于2个16进制,所以java io中的字节流中读取一个字节就是读了2个16进制的数据在项目中我们读取文件的时候经常是这样的:byte [] bytes = new byte[1024]; int length = 0; ByteArrayOutputStream baos = new ByteArrayOutputStream(); wh
2015-03-23 14:04:43
403
原创 log4j新认识
log4j.rootLogger = DEBUG,stdout,D log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.ap
2015-01-23 16:07:55
584
原创 小试Hession
hession 个人理解类似于java里面的rmi,即远程调用,为什么有了rmi还会有hession呢 ,个人理解是rmi不跨平台,只能在java直接调用,但是hession可以做到跨平台,比如说后台是java写的,客户端是C#的,只要接口java和C#的定义成一致即可,包括如果传输的参数是对象的话,也保持对象一致(包括类名和属性名称)。这样开发起来相对于webservice而言比较快速,也是轻量
2014-12-22 17:32:13
857
原创 mina 传输图片
package mina.example3;import java.net.InetSocketAddress;import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
2014-11-24 17:26:12
4623
原创 linux 例行工作 at命令和crontab命令
at命令的用法。at命令的作用是定时在某个时间做一个任务,这个定时任务只会执行一次不会循环执行。用at命令前提首先要启动atd服务 /etc/init.d/atd restart 命令用法at now + 2minutes 敲入这个命令后就会叫你继续输入你想执行的命令然后ctrl+d结束 那在当前时间的2分钟后执行该命令,也可以at 23:00 2014-10-14 这样指定时间atq
2014-10-14 11:34:17
655
原创 linux账号管理
1:登陆linux分为login-shell 或者nologin-shell 。login-shell 指的是我们登陆这个linux是用用户名和密码的方法登入的。nologin-shell 指的是用非密码的方法登入,比如和图形界面中启动了终端。2:以login-shell 登入linux的时候,我们linux会加载配置文件,加载的顺序是/etc/profile 文件 然后再加载各自家目录下面的
2014-10-13 15:42:57
460
原创 linux简单笔记3
1:${变量#关键字}若变量 内容从头开始的数据符合关键字则将符合的最短数据删除${变量##关键字}若变量 内容从头开始的数据符合关键字则将符合的最长数据删除${变量%关键字}若变量 内容从尾向前的数据符合关键字则将符合的最短数据删除${变量%%关键字}若变量 内容从尾向前的数据符合关键字则将符合的最长数据删除${变量/旧字符串/新字符串} 替换字符串,只替换第一个符合的${变
2014-10-09 14:00:49
468
原创 linux 下tomcat的方便启动命令
#!/bin/shregistService(){ echo "begin to regist rcdjk service" if [ -e /etc/init.d/rcdjk ];then rm -rf /etc/init.d/rcdjk fi cp rcdjk /etc/init.d
2014-09-30 14:40:49
1163
原创 linux注册服务
#!/bin/sh registService() { echo "begin to regist rctest service" if [ -e /etc/init.d/rctest ];then rm -rf /etc/init.d/rctest
2014-09-30 10:28:53
655
原创 java双重委派
package com.djk.design.action.shuangchong;public interface A { void doSome(B b); void say();}package com.djk.design.action.shuangchong;public interface B { void doB(A a);}package com.
2014-09-29 10:45:28
1213
原创 行为模式之备忘录模式(利用窄接口)
package com.djk.design.action.memory2;public class Person { public Person(String name, String age) { super(); this.name = name; this.age = age; } private String name; private String
2014-09-29 10:25:48
842
原创 行为模式之备忘录模式
package com.djk.design.action.memory;public class Person { private String name; private String age; public Person(String name, String age) { super(); this.name = name; this.age = ag
2014-09-29 09:41:19
469
原创 行为模式之责任链模式
package com.djk.design.action.filter;public interface Filter { void doFilter(Filter filter);}
2014-09-29 09:14:23
481
原创 行为模式之观察者模式
package com.djk.design.action.obser;import java.util.ArrayList;import java.util.List;import java.util.Observable;import java.util.Observer;/** * 文件监听器 * @author dWX207527 * */public class
2014-09-28 16:22:06
414
原创 行为模式之策略模式
package com.djk.design.action.strage;public interface Strage{ void doThing();}package com.djk.design.action.strage;public class StrageOne implements Strage{ @Override public void doThing
2014-09-28 15:36:24
456
原创 结构模式之享元模式
package com.djk.design.struct.xiangyuan;public final class Characters { private final String string; public Characters(String string) { super(); this.string = string; } public String g
2014-09-28 10:41:47
568
原创 结构模式之组合模式
组合模式是专门用来解决树形结构的问题的:package com.djk.design.struct.compose;public interface Component{ void add(Component component); void reomve(Component component); void action();}package com.djk.de
2014-09-28 10:20:55
418
原创 Shell脚本远程回滚数据库
#!/bin/shremoteIp=`grep DB file |awk -F ' ' '{print $2}'|tr -d ' '`echo "remoteIp is :$remoteIp"scp mdndb.sh $remoteIp:/home/oracle/ssh $remoteIp "chown oracle:oinstall /home/oracle/db.sh;chmod +x
2014-09-25 11:10:44
1384
原创 shell脚本远程升级数据库
#!/bin/shbackupdatedb(){ ssh $remoteIp "mkdir /opt/oracle/exp_dp/;chown oracle:oinstall /opt/oracle/exp_dp -R" 2>/dev/null ssh $remoteIp " su - oracle -c \" sqlplus
2014-09-25 10:56:19
886
原创 结构模式之代理模式 动态代理
package com.djk.design.struct.proxy;public interface Move{ void move();}
2014-09-24 15:05:16
452
原创 结构模式之代理模式 静态代理
package com.djk.design.struct.proxy;public interface Action { void buy();}package com.djk.design.struct.proxy;public class Father implements Action{ private Action action; public F
2014-09-24 14:53:13
517
原创 创建模式之建造者模式 多个构造器优化
利用建造者模式来优化一个对象的有多个构造器的情况比如下面这个类有5个构造器package com.djk.design.factory.build;public class ExampleBuilder { private String name; private int age; private String address; private String teleph
2014-09-23 16:36:01
737
原创 创建模式值建造者模式
建造者模式涉及的对象:1:抽象建造者,定义了一个产品抽象的创建过程2:具体建造者,实现了抽象建造者定位的接口3:导演者,与客户端打交道,里面有一个抽象建造者的引用,来建造具体的对象4:产品类1抽象建造者:package com.djk.design.factory.build;public interface Build { void setCPU();
2014-09-23 15:56:55
441
原创 创建模式之原型模式 深克隆
接下来看下深克隆:package com.djk.design.factory.clone;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;
2014-09-23 14:50:16
498
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人