Struts2线程安全
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。
一、先创建TestAction.java类。
package Action;
public class TestAction {
public TestAction() {
System.out.println("constructor!");
}
public String execute(){
System.out.println("hello struts2!");
return "success";
}
}
二、struts.xml文件配置。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="Test" extends="struts-default">
<action name="Test" class="Action.TestAction">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
通过两次请求访问,我们将看到java类中构造器执行了两次。
三、结论
每次请求都会重新创建TestAction类的对象,所以线程安全。由于TestAction类的对象是通过反射技术生成的,所以类中必须拥有无参构造器。