- 博客(6)
- 资源 (3)
- 收藏
- 关注
原创 AppFuse1.x快速构建J2ee应用
<br />Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、ibatis、struts、Xdcolet、junit 等基础框架给出了示范,最新的1.7版更是提供了对Taperstry和JSF的支持。在持久层,AppFuse采用了Hibernate O/R映射工具(http://www.hibernate.org);在容器方面,它采用了Spring Framework(http://www.springframework.org
2011-04-12 17:33:00 339
原创 appfuse2.02学习开发1
1.到Maven官网http://maven.apache.org/下载其最新版本,解压后设置好环境变量。 2.创建一个存放appfuse项目的文件夹。启动dos窗口,并进入刚刚的文件夹。运行创建骨架的命令,不同的框架选用不同的命令,以下是Struts2 Basic的创建命令: Maven代码 mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -D
2011-04-12 17:28:00 385
转载 Struts1 和Struts2的区别
<br />1. Action: struts必须继承一个抽象类;struts2是一个接口,甚至不使用任何接口。 2. Action执行的控制: Struts1支持每一个模块有单独的Request Processors; Struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不同的生命周期。堆栈能够根据需要和不同的Action一起使用。 3. Action的安全性: struts1 Action资源必须是线程安全的或同步的; Struts2 Action对象为每一个
2011-04-12 17:21:00 392
转载 Java线程安全问题
<br />如何同步保证线程安全<br />1、 问题描述:<br /> 如果一个资源或对象可能被多个线程同时访问,它就是一个共享资源;例如类的成员变量,包括类变量和实例变量,再比如对一个文件进行写操作等。一般情况下,对共享资源的访问需要考虑线程安全的问题。<br /> 如果一个对象的完整生命周期只在一个线程内,则不需要考虑线程安全,例如一个局部变量。下面为一个示例代码:public class C1 { public static java.text.SimpleDateFormat sdf = ne
2011-04-12 17:16:00 1014
转载 Thread类中的join方法的使用
<br />在上面的例子中多次使用到了Thread类的join方法。我想大家可能已经猜出来join方法的功能是什么了。对,join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法。如果不使用join方法,就不能保证当执行到start方法后面的某条语句时,这个线程一定会执行完。而使用join方法后,直到这个线程退出,程序才会往下执行。下面的代码演示了join的用法。
2011-04-12 17:12:00 565
转载 volatile关键字
<br />Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。<br />Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。<br />这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。<br />而volatile关键
2011-04-12 17:11:00 245
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人