用Struts的plugIn接口装载hibernate
在原有项目的基础上导入hibernate相关的jar包,主要有:hibernate3.jar;antlr-2.7.6.jar;commons-collections-3.1.jar;dom4j-1.6.1.jar;javassist-3.9.0.GA.jar;jta-1.1.jar;slf4j-api-1.5.8.jar;slf4j-jcl-1.5.8.jar
在src目录下建一个hibernate.cfg.xml文件:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>
<property name="connection.username">xzf</property>
<property name="connection.password">1234</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
</session-factory>
</hibernate-configuration>
建立SessionFactory类:
package blog;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class SessionFactoryManager {
private static String hibernateConfigFile = null;
public static void setHibernateConfigFile(String hibernateConfigFile) {
SessionFactoryManager.hibernateConfigFile = hibernateConfigFile;
}
private static Configuration configuration = null;
private static SessionFactory sessionFactory = null;
/*static{
openSessionFactory();
}*/
public static SessionFactory openSessionFactory(){
System.out.println("in openSessionFactory method11111!!!!!!!!");
configuration =new Configuration().configure(hibernateConfigFile);
System.out.println("in openSessionFactory method22222!!!!!!!!");
sessionFactory = configuration.buildSessionFactory();
System.out.println("in openSessionFactory method3333!!!!!!!!");
return sessionFactory;
}
public static void closeSessionFactory(){
if (sessionFactory != null && sessionFactory.isClosed() == false) {
sessionFactory.close();
}
}
}
建一个继承自PlugIn接口的类HibernatePlugin:
package blog;
import javax.servlet.ServletException;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class HibernatePlugin implements PlugIn {
private String hibernateConfigFile = null;
public String getHibernateConfigFile() {
return hibernateConfigFile;
}
public void setHibernateConfigFile(String hibernateConfigFile) {
this.hibernateConfigFile = hibernateConfigFile;
}
@Override
public void destroy() {
System.out.println("in destory method!");
SessionFactoryManager.closeSessionFactory();
}
@Override
public void init(ActionServlet servlet, ModuleConfig config)
throws ServletException {
System.out.println("in init method!");
//1.读取配置文件
SessionFactoryManager.setHibernateConfigFile(hibernateConfigFile);
//2.打开sessionFactory
SessionFactoryManager.openSessionFactory();
System.out.println("initialization is over!");
}
}
在struts-config.xml中加入对插件的支持:
<plug-in className="cn.itcast.HibernatePlugin">
<set-property property="hibernateConfigFile" value="/hibernate.cfg.xml"/>
</plug-in>
这样当应用被启动时插件就会被加载进来。
转载于:https://www.cnblogs.com/xzf007/archive/2012/07/19/2873896.html