Spring+struts+hibernate 集成方案

 

Spring+struts集成方案(一)

u        配置struts框架

    1.拷贝struts的jar包到项目/WEB-INF/lib

    2.拷贝struts-config.xml,web.xml配置文件到/WEB-INF中

    3.拷贝资源文件到类路径下/WEB-INF/classes

u        集成Spring框架

    1.拷贝spring.jar到项目/WEB-INF/lib

    2.拷贝log4j.jar,common-logging.jar到项目/WEB-INF/lib

    3.拷贝aop支持包spring_install\lib\aspectj\*.jar

    4.拷贝spring配置文件及log4j的属性文件到src目录下

5.集成消除版本冲突的包,除去低版本的包

6.拷贝struts.jar到lib目录下

u       在web.xml配置监听器

<!-- spring Bean上下文监听器使用以下context-param获得spring配置文件的路径集合 -->

 <context-param>

    <param-name>contextConfigLocation</param-name>

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

 </context-param>

  <!--spring Bean上下文监听器,用于加载beanfactory实例到ServletContext  -->

 <listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

u       在spring中配置数据源及事务的管理特性

<!-- 配置数据源 -->

     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

        <property name="driverClassName">

           <value>com.mysql.jdbc.Driver</value>

        </property>

        <property name="url">

           <value>jdbc:mysql://localhost:3306/info</value>

        </property>

        <property name="username">

           <value>root</value>

    </property>

    <property name="password">

           <value>java</value>

        </property>

     </bean>

     

    <!-- 配置事务管理器 -->

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource">

           <ref local="dataSource"/>

        </property>

    </bean>

    <!-- 配置事务的管理特性(隔离级别,传播特性) -->

    <tx:advice id="transAdvice" transaction-manager="transactionManager">

        <tx:attributes>

           <tx:method name="find*" read-only="true"/>

           <tx:method name="add*" propagation="REQUIRED"/>

           <tx:method name="del*" propagation="REQUIRED"/>

           <tx:method name="update*" propagation="REQUIRED"/>

        </tx:attributes>

    </tx:advice>

   

    <!-- 配置切面,把事务 管理advice和切入点织入到一起-->

    <aop:config>

        <aop:advisor advice-ref="transAdvice"

         pointcut ="execution(* com.xasxt.manager..*.*(..))"/>

    </aop:config>

u       在action中做如下处理

//耦和性小,第一种集成,它的实现类继承自JdbcDaoSupport

         BeanFactory bf = WebApplicationContextUtils.getRequiredWebApplicationContext(

                                       request.getSession().getServletContext());

         RegManager rm = (RegManager) bf.getBean("regManager");

         rm.add(reg);

Spring+struts集成方案(二)

u       在一种方案的基础上做如下操作:

6.拷贝spring-webmvc-struts.jar到lib目录下

    7.在spring配置文件中配置action,并把属性id改为name,值使用struts action配置中的path属性

    8.在struts-config.xml配置文件中把请求Action的type属性值改为:

    org.springframework.web.struts.DelegatingActionProxy

    也就是由以上代理获得spring创建的Action的引用,把请求转发给spring

    框架所创建的Action,从而可以利用Spring的ioc

 

具体操作如下:

Ø         重新建立一个spring配置文件,专门放action的配置

<bean name="/reg" class="com.xasxt.web.struts.action.RegAction">

       <property name="regManager">

           <ref bean="regManager"/>

       </property>

    </bean>

 

Ø         修改struts配置文件,用代理模式

<action-mappings>

       <action path="/reg"

type="org.springframework.web.struts.DelegatingActionProxy"

               name="regForm"

               parameter="method"

               validate="false"

    >

     <forward name="success" path="/success.jsp"></forward>

   </action>

 

Ø         在action中,用接口作为属性,注入spring容器中。

它的实现类同样继承自JdbcDaoSupport

 

RegManager regManager = null;

 

    public RegManager getRegManager() {

        return regManager;

    }

 

    public void setRegManager(RegManager regManager) {

        this.regManager = regManager;

    }

在调用方法时:直接RegForm rf = (RegForm) form;

Reg reg = new Reg();

       BeanUtils.copyProperties(reg, rf);

        regManager.add(reg);

 

 

                  

Spring+struts+hibernate集成方案

u       同样在以上的基础上做如下操作:

集成hibernate框架

1. 拷贝hibernate.jar核心包到项目/WEB-INF/lib中

2. 拷贝hibernate_INSTALL\lib\*.jar到项目/WEB-INF/lib中

3. 创建hibernate.cfg.xml配置文件配置数据库连接,创建到类路径下

4. 集成清除版本冲突的jar包

5. 配置spring配置文件中事务

6. 在web.xml文件配置CharacterEncodingFilter及OpenSessionInViewFilter

   <!-- 配置OpenSessionInView过滤器 -->

         <filter>

                   <filter-name>OpenSessionInViewFilter</filter-name>

<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>

         </filter>

         <filter-mapping>

                   <filter-name>OpenSessionInViewFilter</filter-name>

                   <url-pattern>/*</url-pattern>

         </filter-mapping>

        

         <!-- 配置字符集过滤器 -->

         <filter>

                   <filter-name>CharacterEncodingFilter</filter-name>

                   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

         </filter>

         <filter-mapping>

                   <filter-name>CharacterEncodingFilter</filter-name>

                   <url-pattern>/*</url-pattern>

         </filter-mapping>

u                     现在可以把数据源配置到hibernate中,在spring中配置sessionFactory工厂

<!-- 配置SessionFactory -->

     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

        <property name="configLocation">

            <value>classpath:hibernate.cfg.xml</value>

        </property>

     </bean>

<!-- 配置事务管理器 -->

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory">

    <ref local="sessionFactory"/>  

</property>

    </bean>

   

这个实现类继承自HibernateDaoSupport       

 <bean id="regManager" class="com.xasxt.manager.impl.RegManagerImpl">

        <property name="sessionFactory">

           <ref bean="sessionFactory"/>

        </property>

     </bean>

 

u        增删改查的代码通过框架的集成,最后结果如下,很简单。

    public void add(Reg reg) {

getHibernateTemplate().save(reg);

    }

public void del(int id) {

         getHibernateTemplate().delete(findById(id));

    }

public List<Reg> findAll() {

         return getHibernateTemplate().find("from Reg");

    }

public Reg findById(int id) {

         return (Reg) getHibernateTemplate().load(Reg.class, id);

    }

public void update(Reg reg) {

         getHibernateTemplate().update(reg);

    }

 

u       注册器的实现

public class DateConvert implements Converter {

 

    public Object convert(Class c, Object value) {

         if(value instanceof Date){

            return value;

         }

         Date d = null;

         if(value instanceof String){

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

            try {

               d = sdf.parse(value.toString());

           } catch (ParseException e) {

                e.printStackTrace();

           }

         }

        return d;

    }

 

}

Ø         在写一个插件,继承自PlugIn

ConvertUtils.register(new DateConvert(), Date.class);

Ø         在struts配置文件中注册

<plug-in className="com.xasxt.common.plugIn.RegPlugIn"></plug-in>

 

 

Spring+dwr集成方案

u       配置dwr框架

l       拷贝dwr.jar文件及dwr.xml到工程目录下。

  <allow>

     <create creator="spring" javascript="Intro">

     <param name="beanName" value="hello"/>

  </create>

</allow>

 

l        

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用MyEclipse进行Spring Struts2 Hibernate开发过程中,可以按照以下步骤进行前后台的添加。 首先,对于后台开发,需要配置Hibernate的相关环境。可以在MyEclipse中创建一个新的Java项目,然后在项目中添加相关的Hibernate库文件,包括Hibernate的核心库、连接池库和数据库驱动库。接着,在项目中创建一个Hibernate配置文件,配置数据库连接等相关信息。然后,创建实体类对应数据库表中的字段,并使用注解或XML文件进行映射。接下来,在DAO层中创建与数据库交互的方法,并使用Hibernate相关API进行数据库操作。 对于前台开发,可以使用Spring MVC和Struts2来进行。首先,需要在项目中添加相关的SpringStruts2的库文件。然后,在Spring配置文件(如applicationContext.xml)中配置Spring MVC的相关信息,如视图解析器、控制器等。接着,在项目中创建Controller类,使用注解或XML文件进行映射URL与方法的关系,并在方法中实现相应的业务逻辑。同时,可以创建对应的JSP页面,用于展示数据或与用户交互。 在整个开发过程中,可以使用MyEclipse提供的快速开发工具来简化代码编写和调试,如自动生成实体类、自动生成Controller类等。此外,MyEclipse还提供了集成的调试工具,可以方便地进行代码调试和错误排查。 总结起来,使用MyEclipse进行Spring Struts2 Hibernate开发的前后台教学,需要进行环境配置、实体类的定义与映射、配置文件的编写、业务逻辑的实现以及页面的设计与交互等步骤。通过合理利用MyEclipse的功能,可以提高开发效率和代码质量,实现前后台数据的交互和展示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值