hibernate Struts 与 spring整合配置

写道
1 先加入spring 选择全部JAR包文件 并且选择copy check-----这项 意思是把jar包都拷贝到项目的lib文件下 选择下一步 都选择默认 点击完成

2 加入hibernate 交给spring去管理 把包全部选上 并且选择copy check--意思是把jar包都拷贝到项目的lib文件下 选择下一步 选择接受spring管理(Spring configuration file--)项 点击下一步

选择已经存在的配置文件(Existing spring configuration file)项 设置SessionFactory ID 可以随便设置 点击下一步 选择数据库的配置 并且设置bean id为dataSource 其它配置根据你所选择的数据库区配置 选择下一步 选择不创建工厂类 添加完成后 发现相对以往 我们少了个hibernate的配置文件 而在applicationContext中已经配置好了数据源

创建映射文件*.hbm.xml 利用myelplic就可以实现 并把此文件自动添加到applicationContext.xml文件中

<beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>org.gjt.mm.mysql.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/mldn</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>mysqladmin</value>
</property>
</bean>

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>

</property>
<property name="mappingResources">
<list>
<value>org/lxh/ssh/Person.hbm.xml</value>
</list>
</property>

</bean>

3在此时执行数据的增删查改只要处理业务的类 只要继承了Spring中的HibernateDaoSupport就可以实现此功能 并且在HibernateDaoSupport类中可以获取数据库的连接对象,它有一个静态的方法 getSession() 如

//这是个增加数据的方法

public class PersonDAOImpl extends HibernateDaoSupport {
public void insert(Person person) {
this.getSession().save(person) ;
this.getSession().beginTransaction().commit() ;
}

新建一个处理业务的类 PersionDaoImp

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class PersonDAOImpl extends HibernateDaoSupport {
public void insert(Person person) {
this.getSession().save(person) ;
this.getSession().beginTransaction().commit() ;
}
}


但是HibernateDaoSupport要靠Spring中HibernateTemplate模板的支持的SessionFactory才可以使用 这时就应该去配置applicationContext.xml文件

4配置模板 修改配置applicationContext.xml文件

<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

模板配置好了后 还得为业务处理类加入模板才可以使用

5为业务处理类添加模板 继续修改applicationContext.xml文件

<bean id="persondao" class="org.lxh.ssh.PersonDAOImpl">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate" />
</property>
</bean>

但是我们在处理业务类中并没有去接受这个模板啊 记住在HibernateDaoSupport类中已经设置了定义模板的操作 只要你在配置文件中配置好模板的操作 并且你所的业务的处理类继承了HibernateDaoSupport类 那么你就可以直接去处理业务了

6 测试一下

//读取配置文件信息

ApplicationContext text=null;

text=new ClassPathXmlApplicationContext("applicationContext.xml");

//从配置文件中取得业务处理的类

PersonDaoImp p=(PersionDaoImp)text.getBean("persondao");

//新建一个实体类对象 这个实体类中有get和set方法 这个实体类也可以在application中去配置

Persion per=new Person();

//最好去调用业务类的相应方法

p.insert(per);

到这里Spring与hibeinate的整合就算完成了

 

写道
之前的hibernate Struts 与 spring整合配置1

已经介绍了加入了spring和hibeinate 接下来就应该加入Struts了

1 添加Struts

2 配置 这是ssh配置的难点 必须要掌握好

3 首先建立Action和form类

4 正式配置开始

首先应该配置好web.xml容器 加载监听器

--添加Spring支持

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>

--启动配置 怎么去启动

<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup> --表示服务自动启动
</servlet>



在Action中定义一个实现业务类的属性 这个属性是调用业务的方法 这个业务方法的调用时依赖于spring的注入的 所以在使用的时候应该定义这个业务类的一个变量 并且为这个变量生成get和set方法 在Action中调用的业务类都是要依赖注入到spring中去的 ,只要依赖注入到spring中去 并且处理业务的控制器中压迫使用就必须生成get和set方法

public class PersonAction extends DispatchAction {
private PersonDAOImpl persondao ;
/*
* Generated Methods
*/

/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward insert(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
PersonForm personForm = (PersonForm) form;// TODO Auto-generated method stub
Person per = new Person() ;
per.setName(personForm.getName()) ;
per.setPassword(personForm.getPassword()) ;
persondao.insert(per) ;
return null;
}

public PersonDAOImpl getPersondao() {
return persondao;
}

public void setPersondao(PersonDAOImpl persondao) {
this.persondao = persondao;
}
}

看上去你好像啥都没做,而事实上,注入工作已经由AutowiringRequestProcessor自动完成。

修改struts的配置文件信息

添加插件 plug-in 目的是为了方便管理Spring

<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>

 

写道
//加入Spring中的DelegatingRequestProcessor代理请求处理,目的是将Struts中的请求及应答用

//Spring的ioc容器中的Bean来处理

<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>



修改后的Struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<data-sources />
<form-beans>
<form-bean name="personForm"
type="org.lxh.struts.form.PersonForm" />

</form-beans>

<global-exceptions />
<global-forwards />
<action-mappings>
<action attribute="personForm" input="/form/person.jsp"
name="personForm" parameter="status" path="/person" scope="request"
type="org.lxh.struts.action.PersonAction" />
</action-mappings>
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>
<message-resources parameter="org.lxh.struts.ApplicationResources" />
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>
</struts-config>



修改Spring的配置文件信息 applicationContext.xml的信息 把Action动作添加到applicationContext.xml文件中 也可以说是依赖注入到Spring

<bean name="/person" class="org.lxh.struts.action.PersonAction">
<property name="persondao">
<ref bean="persondao"/>
</property>
</bean>

修改后的applicationContext.xml

<beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>org.gjt.mm.mysql.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/mldn</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>mysqladmin</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>org/lxh/ssh/Person.hbm.xml</value>
</list>
</property>
</bean>
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="persondao" class="org.lxh.ssh.PersonDAOImpl">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate" />
</property>
</bean>
<bean name="/person" class="org.lxh.struts.action.PersonAction">
<property name="persondao">
<ref bean="persondao"/>
</property>
</bean>
</beans>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值