自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

飘零的云

fly with wind like cloud

  • 博客(44)
  • 资源 (2)
  • 收藏
  • 关注

原创 使用Spring的事务管理----传播性和隔离性

在上面几篇日志配置Spring事务的时候都涉及到了事务的传播和隔离性,这里具体深入理解一下。当多个事务嵌套时,某个事务的propagation事务传播将会直接影响最终的执行效果。具体propagation的解释如下:propagation属性说明 REQUIRED 无论当前事务上下文中有没有事务,都会创建一个新的事务。也即逻辑需要在一个事务中运行,如果方法运行...

2014-07-18 16:46:42 167

原创 使用Spring的事务模板

整体的工程代码跟上一篇日志的工程差不多。服务类StudentService.java的代码如下:package com.mysrc.service;import java.sql.Date;import java.util.List;import org.springframework.transaction.TransactionStatus;import o...

2014-07-17 20:33:58 469

原创 使用Spring的声明式事务----AOP方式

类似于上一篇日志,这里使用AOP的方式来配置。工程结构:大部分代码跟上一个工程类似。 服务类StudentService.java代码如下:package com.mysrc.service;import java.sql.Date;import java.util.List;import com.mysrc.dao.StudentDao;imp...

2014-07-17 17:35:59 560

原创 使用Spring的声明式事务----Annotation注解方式

这里列一个小的demo工程,直接利用Spring的jdbcTemplate访问Mysql数据库。工程结构: 数据库中的tbl_student表结构如下: 数据实体类Student.java代码如下: package com.mysrc.entity;import java.sql.Date;public class Student { priva...

2014-07-17 17:15:15 1020

原创 应用Spring AOP(六)-------Annotation注解配置方式

Spring AOP的注解方式在官网的doc文档里也有详细的说明:http://docs.spring.io/spring/docs/2.0.8/reference/aop.html还是上篇日志的示例工程,现在换成Annotation注解的方式来配置AOP,工程结构一样的: AllLogAdvice类代码变成了如下:package com.aop;import org.apac...

2013-10-30 14:53:31 475

原创 应用Spring AOP(五)-------XML配置方式

Spring AOP提供了xml配置文件以及Annotation注解的方式更方便的进行AOP的配置。当然这两种方式的最大的好处是更好的降低了代码耦合性。XML配置的示例工程代码: 和前面的工程相比,前置通知,后置通知那几个通知类没有了,所有的通知逻辑直接放到了AllLogAdvice类的方法里:package com.aop;import org.apache.log4j.Lo...

2013-10-30 10:04:06 120

原创 应用Spring AOP(四)-------原理

       记得参加今年的网易校招Java研发工程师职位的笔试题中就有类似的这个题目,还好之前看过网上的介绍,而且阿里巴巴一面的时候这个知识点也帮了我的大忙,嘿嘿。。这篇文章太有用了,讲得很透彻:http://www.blogjava.net/DoubleJ/archive/2008/03/04/183796.html大体就是应用动态代理,说白了就是反射+代理模式,其中java.la...

2013-10-29 16:25:30 88

原创 应用Spring AOP(三)-------使用控制流切入点

        如果只想拦截在某种情况下调用的方法,可以使用Spring AOP提供的ControlFlowPointcut来完成这个功能。比如,只有在MainTest类中的aaMethod方法中调用的目标类的方法才会被拦截,其它地方调用的目标类的方法将不会被拦截。        示例如下,应用上一篇日志的前置通知,不同就是这里应用ControlFlowPointcut,而上一篇日志应用了...

2013-10-29 16:12:19 152

原创 应用Spring AOP(二)-------通过Advisor指定切入点

       上一篇日志使用的前置通知,后置通知,环绕通知和异常通知可以很好的拦截方法,并插入相应的代码。但是却存在一个问题,就是Spring AOP拦截了目标类中的所有方法。而在通常情况下,只需要拦截部分方法,比如只需要拦截目标类中方法名以set开始的所有方法。Spring AOP提供了Advisor和PointcutAdvisor来达到这个目的。       常用的PointAdvis...

2013-10-29 15:20:17 297

原创 应用Spring AOP(一)

        AOP即Aspect-Oriented Programming,面向方面编程。AOP和OOP类似,也是一种编程模式。但是AOP并不能取代OOP,它只是对OOP的扩展和补充。Spring AOP是基于AOP编程模式的一个框架,它实现了AOP范围内的大多数功能,包括Advice、Pointcut等。        AOP典型的应用场景:http://pandonix.ite...

2013-10-28 22:16:19 89

原创 用JUnit4进行单元测试

用Junit进行单元测试很方便,尤其是Junit4引入了很多Annotation注解以后。看测试的示例:待测试类:public class Calculator { public int add(int a, int b) { return a + b; } public int minus(int a, int b) { return a - b;...

2013-09-28 20:00:36 855

原创 Java中的ThreadLocal

再了解ThreadLocal之前先看一个简单的Java线程示例。线程类:public class TestThread2 extends Thread { int a; String b = "a"; @Override public void run() { for (int i = 1; i <= 3; i++) { System.out.p...

2013-09-28 16:21:39 96

原创 有关Java序列化(三)——使用Externalizable

JDK中提供了另一个序列化接口--Externalizable,使用该接口之后,之前基于Serializable接口的序列化机制就将失效。Externalizable继承于Serializable,当使用该接口时,序列化的细节需要由程序员去完成。测试代码:import java.io.Externalizable;import java.io.IOException;impor...

2013-09-27 21:48:21 162

原创 有关Java序列化(二)

还是上一篇日志的测试代码:import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;public class Person implements Serializable { p...

2013-09-27 21:10:32 111

原创 有关Java序列化(一)

“序列化是将对象状态转换为可保持或可传输的格式的过程”。为什么要序列化,说的很清楚了,就是为了将对象状态进行持久化或者进行传输。注意这里说的是对象状态,所以只有对象的属性变量才会进行序列化,方法是不会序列化的。Java中所有实现Serializable接口的对象就表明是可序列化的。 示例代码:import java.io.Serializable;public class ...

2013-09-27 20:12:31 94

原创 Java处理正则表达式

Java本身的Util包里面就有提供处理正则表达式的工具类,当然还有很多第三方正则表达式处理包,反正到目前为止,用java.util.regex就已经能满足我的需求了。示例如下:import java.util.regex.Matcher;import java.util.regex.Pattern;public class Hello { public static vo...

2013-09-05 15:01:41 168

原创 Java线程通信实现生产者-消费者

生产者消费者是经典的线程之间同步通信问题,生产者线程只有在产品仓库中没有产品的时候才生产产品,当它生成完一个产品以后唤醒消费者线程,消费者线程只有在产品仓库中有产品的时候才能取走产品,然后唤醒生产者线程。Java可以有好几种方法解决这个问题。首先基础的当然是用Object的wait()、notify()和notifyAll()。产品仓库类://产品仓库public class ...

2013-09-04 20:02:22 150

原创 使用Java的BlockingQueue实现生产者-消费者

BlockingQueue也是java.util.concurrent下的主要用来控制线程同步的工具。BlockingQueue有四个具体的实现类,根据不同需求,选择不同的实现类1、ArrayBlockingQueue:一个由数组支持的有界阻塞队列,规定大小的BlockingQueue,其构造函数必须带一个int参数来指明其大小.其所含的对象是以FIFO(先入先出)顺序排序的。2、Li...

2013-09-04 16:00:58 554

原创 Java调用Python

今天遇到Java调用一个Python脚本的问题,纠结了大半天,遇到各种问题。网上搜索的大部分都是用jython,但是我想要调用的python脚本里有import urllib,这个urllib也不是什么第三方扩展库,在python的安装path下的Lib下就有,在python命令行下肯定是能找到的。但是用jython的话,sys的path里面就太少了。示例代码:import org.pyth...

2013-08-02 19:51:07 1048

原创 Java中使用Lock控制线程同步

紧接着Callable和线程池,再次接触java.util.concurrent并发包下的东西。Lock提供比synchronized更灵活的并发控制。Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题。使用最多的Lock类是ReentrantLoc...

2013-05-27 21:42:12 101

原创 Java中使用synchronized控制线程同步

Java线程之间控制占用临界资源(共享资源)用的最多就是synchronized,首先获得资源访问权的线程给资源对象加锁,使用完毕以后再释放对象锁。例如打印机的例子:public class Printer { public void printLetters(char c) { for(int i = 0; i<5; i++) { System...

2013-05-27 20:32:05 112

原创 Java中使用Timer和TimerTask实现多线程

Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。测试代码:import java.util.TimerTask;public class OneTask extends TimerTask{...

2013-05-24 21:32:44 644

原创 Mac系统环境变量设置

    最近使用苹果笔记本,下载了一个rar解压缩的软件,是命令行程序,得加入到系统的环境变量中。网上搜了一下,需要添加到~/.bash_profile文件中,但是看了一下,我电脑上并没有这个文件,但是有一个~/.profile(这些文件都是隐藏文件,通过ls -a才能查看到)文件,在这个文件里面添加:export PATH=/Users/apple/apps/rar:$PATH 这句...

2013-05-24 19:28:28 322

原创 Mac下屏幕截图快捷方式

全屏截图:Command-Shift-3使用快捷键后会马上截取当前的全屏 指定区域截图:Command-Shift-4使用快捷键后会出来一个带有座标的瞄准器,用鼠标的拖放可以选择需要截图的区域. 指定程序窗口截图:Commnad-Shift-4-Space使用快捷键后会出现一个照相机的图标,这时候你可以选择屏幕上能看到的任何程序窗口,把鼠标移到它上面后窗口会整个被高亮...

2013-05-24 18:25:26 113

原创 使用Java的Callable接口运行线程

Runnable和Callable的区别:(1)Runnable是自从java1.1就有了,而Callable是1.5之后才加上去的(2)Callable规定的方法是call(),Runnable规定的方法是run()(3)Callable的任务执行后可返回值,而Runnable的任务是不能返回值(是void)(4)call方法可以抛出异常,run方法不可以(5)运行Callable任务可以拿...

2013-05-23 16:51:16 363

原创 使用Java线程池

线程池的接口和类位于java.util.concurrent并发包中。真正的线程池接口是ExecutorService。有四种类型的线程池:newSingleThreadExecutor:创建一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。 ...

2013-05-23 15:17:58 68

原创 Centos下配置iptables防火墙

服务器新增的系统是Centos6,这个版本默认已经安装了iptables。 iptables的基本操作:service iptables startservice iptables stopservice iptables restartservice iptables status  #如果没有启动,将提示没有启动,否则将会显示已经添加的过滤规则service iptab...

2013-03-30 15:18:38 153

原创 Centos下安装FTP并进行虚拟用户访问方式配置

 给实验室网站的服务器安装ftp服务器,安装完以后开始没有使用虚拟用户的方式,客户端连接的时候输入Centos系统的一个用户名和密码,能是能正常上传下载,但是它访问到Centos系统的所有目录,这也太不安全了,当然是不可行的。哎,没办法,最后还是设置成虚拟用户的方式吧,虽然麻烦点。虚拟用户的方式是所有客户端ftp用户都借助一个centos的系统上的用户进行上传下载。安装及配置步骤如下: ...

2013-03-29 16:18:31 178

原创 Centos下文本文件格式转码

最近遇到服务器网站的目录下的所有文件的编码全是gb2312,直接用cat或者vim打开显示都是乱码,网页显示出来当然也全是乱码,所以要解决怎么把目录下的所有文件(包括子文件夹里的文件)由gb2312转码成utf-8的问题。网上一顿搜,总共用了三种方法,最后终于把问题解决了。 第一种方法是利用vi编辑器,打开需要转码的文件。:set fileencoding这样可以查看文件当前的...

2013-03-29 14:05:30 405

原创 Apache虚拟主机的设置

很多Web服务器都支持设置虚拟主机,允许在一台服务器里放置运行多个Web站点。多个Web站点可以根据IP,域名或者端口区分。这里记录Windows下基于端口的虚拟主机的配置方法。Apache的安装路径为:D:\Program Files\Apache Software Foundation\Apache2.2在Apache的安装路径下的conf目录下找到httpd.conf,修改:...

2013-03-13 20:15:52 88

原创 请求aspx页面的WebMethod

Asp.net可以在aspx页面中添加ScriptManager,这样就允许将WebMethod添加在aspx页面中,而以往通常都是新建asmx文件,利用webservice提供webmethod供请求。这里列出利用ajax请求aspx页面中的webmethod的方法,当然也可以利用ScriptManager创建的PageMethods的js对象直接访问后台代码中的webmethod。li...

2013-03-06 20:17:20 1181

对缩短URL的还原

互联网上已经有很多提供长url缩短的服务提供网站,例如http://goo.gl/,http://tinyurl.com/,http://bitly.com/等等,而且它们不仅提供在线的缩短服务,还开放进行缩短的api,供开发者调用。 反之,也可以利用http://untiny.me/进行缩短url的还原,它能还原几乎所有的缩短服务提供商缩短的url。在线的还原没什么可说的,这里说一下...

2012-12-11 21:03:25 1085

原创 学习MongoDB(四)——Master/Slave模式

Master和Slave数据库做到数据同步,在Master节点上能进行任何数据操作,而Slave节点只能读取从Master节点同步的数据,不能进行数据插入等操作。官方的配置说明:http://www.mongodb.org/display/DOCS/Master+Slave测试环境:两台机器,192.168.1.193和192.168.1.192,两太电脑都是Mac系统。192.168.1...

2012-09-29 18:44:24 564

原创 学习MongoDB(三)——安全和授权

MongoDB在非授权模式下启动显然是不安全的,任何人都能通过客户端连接数据库服务器,并且操作里面的所有数据。MongoDB以安全的授权方式启动:mongod --auth 这样就只有数据库添加的授权用户才能连接数据库,并进行数据操作。官方给出的用户管理的说明:http://www.mongodb.org/display/DOCS/Security+and+Aut...

2012-09-28 16:33:39 188

原创 学习MongoDB(二)——用Java对数据库进行增删改查

MongoDB已经支持很多种语言的数据访问,官方提供的API参考 http://www.mongodb.org/display/DOCS/Drivers值得一提的是还有JavaScript的访问API,当然是在服务器端用JavaScript来访问MongoDB数据库,必然就得利用Node.js了。下载Java的驱动Jar包:https://github.com/mongodb/mongo-...

2012-09-27 20:19:58 135

原创 学习MongoDB(一)——Mac和Windows XP下的安装

MongoDB是非关系型数据库的典型代表,NoSQL概念的体现。传统的关系数据库将结构化的数据库存储在一张张定义好字段和格式的数据表中,而MongoDB则是将类似json格式的数据松散的存储在集合(Collection)中,而这些json格式的数据(称为文档document)也许key字段完全不一样。数据文档是以键-值对的格式存储在集合中,这种存储形式为BSON(Binary Serialized...

2012-09-27 20:07:56 83

原创 Apache以http_proxy方式连接Tomcat

修改Apache服务器安装目录下的配置文件httpd.conf首先加载必要的Module:LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_b...

2012-09-20 16:48:53 487

jquery跨域Ajax请求

关键:ajax的dataType为jsonp,并且在请求的url中加上"?jsoncallback=?"前台代码:<script type="text/javascript" src="jquery-1.7.2.min.js"></script> <script type="text/javascript"> functio

2012-09-20 15:42:30 504

原创 使用DWR反转实现信息推送(一)

除了利用Pushlet实现信息推送外,DWR反转同样可以实现推送。DWR的简单配置方法已经在以前的博客中写过。所以这里直接贴代码:新建web工程,这里命名为DwrEg,包结构如下:web.xml代码如下:<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http:/...

2012-02-08 21:10:53 137

原创 使用Pushlet实现后台信息推送(二)

上一篇日志利用推送源周期性地向订阅了某一事件的所有网页端推送信息,但怎么实现向特定的某一个用户推送信息呢,想象一个网络聊天室,怎么向单独的一个好友私聊呢。问题的关键就是那个SessionID,Pushlet默认是用java.rmi.server.UID参数的随机字符串作为会话标志,这就造成我们没法跟一个特点的用户对应上,也就是说客户必须在joinListen的时候提供一个他的ID,就像登陆qq时,...

2012-02-08 19:16:40 201

web技术课程

web技术开发的课程课件,包括详细的html,css和asp.net讲解等常用web技术

2013-12-19

空空如也

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

TA关注的人

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