首页 > 其他 > 详细

structs spring hibernate 三者之间有什么关系?

时间:2014-02-13 15:02:16      阅读:430      评论:0      收藏:0      [点我收藏+]
现在开发流行MVC模式,structs在C(控制器)中使用;hibernate在M(模型)中被使用;至于 spring ,最大的作用在于,structs、hibernate的对象,由于在各个层之间相互调用,自己维护不够效率、会产生疏漏,所以,spring 提供一个容器(IOC),structs、hibernate的对象交由spring管理即可。

另外,spring还有一个作用,AOP是切面编程,就是不同地方的相同代码,spring提取出来,进行统一的使用。

总之,spring就是把开发中共性的问题,抽取出来,统一的调用。

MVC中的V(视图),可以用JSP、structs、ExtJs、JQuery等框架或技术实现。

 Structs+Spring+Hibernate,这是很经典的一个搭配,它的开发流程也比较程式化,下面以用户注册为例。
    注册页面代码:
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣<%@page contentType="text/html;charset=GBK"%>
bubuko.com,布布扣
<html> 
bubuko.com,布布扣
<head><title>Spring、Struts和Hibernate整合之用户注册</title></head> 
bubuko.com,布布扣
<body>${msg}
bubuko.com,布布扣    
<form name="user" action="/myHibernate/regedit.do" method="post"> 
bubuko.com,布布扣        用户名 
<input type="text" name="username" value="${user.username}"/><br> 
bubuko.com,布布扣密  码 
<input type="password" name="password" value="${user.password}"/><br>
bubuko.com,布布扣        
<input type="submit" name="method" value="提交"/> 
bubuko.com,布布扣    
</form> 
bubuko.com,布布扣
</body> 
bubuko.com,布布扣
</html>
bubuko.com,布布扣
bubuko.com,布布扣

  实体Bean类:
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣package com.myHibernate.bean;
bubuko.com,布布扣
public class User1 {
bubuko.com,布布扣
//    定义id
bubuko.com,布布扣
    private String id = null;
bubuko.com,布布扣    
//定义用户名
bubuko.com,布布扣
    private String username = null;
bubuko.com,布布扣    
//定义密码
bubuko.com,布布扣
    private String password = null;
bubuko.com,布布扣    
//设定id
bubuko.com,布布扣
    public void setId(String id) {
bubuko.com,布布扣        
this.id = id;
bubuko.com,布布扣    }

bubuko.com,布布扣    
//获取id
bubuko.com,布布扣
    public String getId() {
bubuko.com,布布扣        
return this.id;
bubuko.com,布布扣    }

bubuko.com,布布扣    
//设定用户名
bubuko.com,布布扣
    public void setUsername (String username) {
bubuko.com,布布扣        
this.username = username;
bubuko.com,布布扣    }

bubuko.com,布布扣    
//获取用户名
bubuko.com,布布扣
    public String getUsername () {
bubuko.com,布布扣        
return this.username;
bubuko.com,布布扣    }

bubuko.com,布布扣    
//设定密码
bubuko.com,布布扣
    public void setPassword (String password) {
bubuko.com,布布扣        
this.password = password;
bubuko.com,布布扣    }

bubuko.com,布布扣    
//获取密码
bubuko.com,布布扣
    public String getPassword () {
bubuko.com,布布扣        
return this.password;
bubuko.com,布布扣    }

bubuko.com,布布扣
bubuko.com,布布扣}

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
    对应的映射文件User.hbm.xml:
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣<?xml version="1.0"?>
bubuko.com,布布扣
<!DOCTYPE hibernate-mapping PUBLIC
bubuko.com,布布扣    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
bubuko.com,布布扣    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
bubuko.com,布布扣
<hibernate-mapping package="com.myHibernate.bean">
bubuko.com,布布扣  
<class name="User" table="user">
bubuko.com,布布扣  
<!--定义id-->   
bubuko.com,布布扣  
<id name="id" column="id">
bubuko.com,布布扣            
<generator class="native"/>
bubuko.com,布布扣        
</id>
bubuko.com,布布扣      
<!--定义用户名-->
bubuko.com,布布扣      
<property name="username"/>
bubuko.com,布布扣      
<!--定义密码-->   
bubuko.com,布布扣      
<property name="password"/>
bubuko.com,布布扣  
</class>
bubuko.com,布布扣
</hibernate-mapping>
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
    用户DAO接口:
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣package com.myHibernate.dao;
bubuko.com,布布扣
import com.myHibernate.bean.User;
bubuko.com,布布扣
public interface UserDAO {
bubuko.com,布布扣    
//查询用户
bubuko.com,布布扣
    public abstract User queryUser(String name);
bubuko.com,布布扣    
//新增用户
bubuko.com,布布扣
    public abstract void insertUser(User user);
bubuko.com,布布扣    
//修改用户
bubuko.com,布布扣
    public abstract void updateUser(User user);
bubuko.com,布布扣    
//删除用户
bubuko.com,布布扣
    public abstract void deleteUser(User user);
bubuko.com,布布扣}

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
  用户DAO接口实现类:
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣package com.myHibernate.dao.impl;
bubuko.com,布布扣
import org.hibernate.SessionFactory;
bubuko.com,布布扣
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
bubuko.com,布布扣
bubuko.com,布布扣
import com.myHibernate.bean.User;
bubuko.com,布布扣
import com.myHibernate.dao.UserDAO;
bubuko.com,布布扣
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO{
bubuko.com,布布扣    
private SessionFactory sessionFactory;
bubuko.com,布布扣    
private String hql = "from User u where u.username = ?";
bubuko.com,布布扣    
//查询用户
bubuko.com,布布扣
    public User queryUser(String name) {
bubuko.com,布布扣        User user 
= null;
bubuko.com,布布扣        
//如果查询结果为空
bubuko.com,布布扣
        if (this.getHibernateTemplate().find(hql, name) == null ) {
bubuko.com,布布扣            user 
= null;
bubuko.com,布布扣        }
 else {
bubuko.com,布布扣            
//不为空时,取第一笔
bubuko.com,布布扣
            user = (User)this.getHibernateTemplate().find(hql, name).get(0);
bubuko.com,布布扣        }

bubuko.com,布布扣        
return user;
bubuko.com,布布扣    }

bubuko.com,布布扣    
//新增用户
bubuko.com,布布扣
    public void insertUser(User user) {
bubuko.com,布布扣        
this.getHibernateTemplate().save(user);
bubuko.com,布布扣    }

bubuko.com,布布扣    
//修改用户
bubuko.com,布布扣
    public void updateUser(User user) {
bubuko.com,布布扣        
this.getHibernateTemplate().update(user);
bubuko.com,布布扣    }

bubuko.com,布布扣    
//删除用户
bubuko.com,布布扣
    public void deleteUser(User user) {
bubuko.com,布布扣        
this.getHibernateTemplate().delete(user);
bubuko.com,布布扣    }

bubuko.com,布布扣}

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣

注册的业务逻辑接口:

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
package com.myHibernate.domain;
bubuko.com,布布扣
import com.myHibernate.bean.User;
bubuko.com,布布扣
public interface Regedit {
bubuko.com,布布扣    
//保存用户
bubuko.com,布布扣
    public abstract void saveUser(User user);
bubuko.com,布布扣    
//修改用户
bubuko.com,布布扣
    public abstract void updateUser(User user);
bubuko.com,布布扣    
//删除用户
bubuko.com,布布扣
    public abstract void deleteUser(User user);
bubuko.com,布布扣    
//获取是否保存成功的消息
bubuko.com,布布扣
    public abstract String getMsg();
bubuko.com,布布扣}

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
  注册的业务逻辑实现:
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣package com.myHibernate.domain.impl;
bubuko.com,布布扣
bubuko.com,布布扣
import com.myHibernate.bean.User;
bubuko.com,布布扣
import com.myHibernate.dao.UserDAO;
bubuko.com,布布扣
import com.myHibernate.domain.Regedit;
bubuko.com,布布扣
bubuko.com,布布扣
public class RegeditImpl implements Regedit{
bubuko.com,布布扣    
private String msg;
bubuko.com,布布扣    
private UserDAO userDao;
bubuko.com,布布扣    
//保存用户
bubuko.com,布布扣
    public void saveUser(User user) {
bubuko.com,布布扣        userDao.insertUser(user);
bubuko.com,布布扣        msg 
= "保存成功";
bubuko.com,布布扣    }

bubuko.com,布布扣    
//修改用户
bubuko.com,布布扣
    public void updateUser(User user) {
bubuko.com,布布扣        userDao.updateUser(user);
bubuko.com,布布扣    }

bubuko.com,布布扣    
//删除用户
bubuko.com,布布扣
    public void deleteUser(User user) {
bubuko.com,布布扣        userDao.deleteUser(user);
bubuko.com,布布扣    }

bubuko.com,布布扣    
//获取是否保存成功的消息
bubuko.com,布布扣
    public String getMsg() {
bubuko.com,布布扣        
return msg;
bubuko.com,布布扣    }

bubuko.com,布布扣    
/**
bubuko.com,布布扣     * @返回userDao
bubuko.com,布布扣     
*/

bubuko.com,布布扣    
public UserDAO getUserDao() {
bubuko.com,布布扣        
return userDao;
bubuko.com,布布扣    }

bubuko.com,布布扣    
/**
bubuko.com,布布扣     * @注入userDao
bubuko.com,布布扣     
*/

bubuko.com,布布扣    
public void setUserDao(UserDAO userDao) {
bubuko.com,布布扣        
this.userDao = userDao;
bubuko.com,布布扣    }

bubuko.com,布布扣}

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
  用户注册控制器类:
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣package com.myHibernate.action;
bubuko.com,布布扣
import javax.servlet.http.HttpServletRequest;
bubuko.com,布布扣
import javax.servlet.http.HttpServletResponse;
bubuko.com,布布扣
//导入struts包
bubuko.com,布布扣
import org.apache.struts.action.Action;
bubuko.com,布布扣
import org.apache.struts.action.ActionForm;
bubuko.com,布布扣
import org.apache.struts.action.ActionForward;
bubuko.com,布布扣
import org.apache.struts.action.ActionMapping;
bubuko.com,布布扣
bubuko.com,布布扣
import com.myHibernate.bean.User;
bubuko.com,布布扣
import com.myHibernate.domain.Regedit;
bubuko.com,布布扣
//继承action    
bubuko.com,布布扣
public class RegeditAction extends Action {
bubuko.com,布布扣    
//定义接口Regedit
bubuko.com,布布扣
    private Regedit regedit;
bubuko.com,布布扣    
//获取值
bubuko.com,布布扣
      public Regedit getRegedit () {
bubuko.com,布布扣            
return regedit;
bubuko.com,布布扣      }

bubuko.com,布布扣      
//依赖注入值
bubuko.com,布布扣
     public void setRegedit (Regedit regedit) 
bubuko.com,布布扣            
this.regedit = regedit;
bubuko.com,布布扣      }

bubuko.com,布布扣    
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest  request, HttpServletResponse response)  throws Exception {   
bubuko.com,布布扣        
//获取用户提交的信息
bubuko.com,布布扣
        User user = (User)form;
bubuko.com,布布扣        
//保存用户提交的信息    
bubuko.com,布布扣
        getRegedit().saveUser(user);
bubuko.com,布布扣        
//将用户提交的信息和是否保存成功的信息存放在request中
bubuko.com,布布扣
        request.setAttribute("user", user);
bubuko.com,布布扣        request.setAttribute(
"msg", regedit.getMsg());
bubuko.com,布布扣        
//返回页面
bubuko.com,布布扣
        return mapping.findForward("regedit");
bubuko.com,布布扣    }

bubuko.com,布布扣}

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
  下面是配置文件方面,首先是Hibernate的配置文件hibernate.cfg.xml,定义了访问数据库所需要的一些值:
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣<?xml version="1.0" encoding="UTF-8"?>
bubuko.com,布布扣
<!DOCTYPE hibernate-configuration PUBLIC
bubuko.com,布布扣        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
bubuko.com,布布扣        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
>
bubuko.com,布布扣
<hibernate-configuration>
bubuko.com,布布扣    
<session-factory>
bubuko.com,布布扣        
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
bubuko.com,布布扣        
<property name="hibernate.connection.url">jdbc:mysql://localhost/myHibernate</property>
bubuko.com,布布扣        
<property name="hibernate.connection.username">root</property>
bubuko.com,布布扣        
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
bubuko.com,布布扣        
<property name="show_sql">true</property>
bubuko.com,布布扣        
<mapping resource="com/myHibernate/bean/User.hbm.xml"/>
bubuko.com,布布扣    
</session-factory>
bubuko.com,布布扣
</hibernate-configuration>
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣

然后是Spring的配置文件spring-config.xml

bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣<?xml version="1.0" encoding="UTF-8"?>
bubuko.com,布布扣
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
bubuko.com,布布扣
<beans>
bubuko.com,布布扣    
<!--定义数据源-->
bubuko.com,布布扣    
<bean id="dataSource"
bubuko.com,布布扣       class
="org.apache.commons.dbcp.BasicDataSource"
bubuko.com,布布扣       destroy-method
="close">
bubuko.com,布布扣       
<!--设定驱动-->
bubuko.com,布布扣       
<property name="driverClassName">
bubuko.com,布布扣           
<value>com.mysql.jdbc.Driver</value>
bubuko.com,布布扣       
</property>
bubuko.com,布布扣       
<!--设定url-->
bubuko.com,布布扣       
<property name="url">
bubuko.com,布布扣           
<value>jdbc:mysql://localhost/myHibernate</value>
bubuko.com,布布扣       
</property>
bubuko.com,布布扣       
<!--设定用户名-->
bubuko.com,布布扣       
<property name="username">
bubuko.com,布布扣           
<value>root</value>
bubuko.com,布布扣       
</property>
bubuko.com,布布扣    
</bean>
bubuko.com,布布扣    
<!--通过org.springframework.orm.hibernate3.LocalSessionFactoryBean建立联系-->
bubuko.com,布布扣  
<bean id="sessionFactory"
bubuko.com,布布扣      class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
bubuko.com,布布扣       
<property name="dataSource">
bubuko.com,布布扣           
<ref local="dataSource" />
bubuko.com,布布扣       
</property>
bubuko.com,布布扣       
<!--定义要使用的映射文件-->
bubuko.com,布布扣       
<property name="mappingResources">
bubuko.com,布布扣           
<list>
bubuko.com,布布扣              
<value>com\myHibernate\bean\User.hbm.xml</value>
bubuko.com,布布扣           
</list>
bubuko.com,布布扣       
</property>
bubuko.com,布布扣       
<!--定义要使用的方言和是否显示sql-->
bubuko.com,布布扣       
<property name="hibernateProperties">
bubuko.com,布布扣        
<props>
bubuko.com,布布扣           
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
bubuko.com,布布扣           
<prop key="hibernate.show_sql">true</prop>
bubuko.com,布布扣        
</props>
bubuko.com,布布扣        
</property>
bubuko.com,布布扣    
</bean>
bubuko.com,布布扣    
<!--这里添加对事务处理的支持,当然也可以不用-->
bubuko.com,布布扣  
<bean id="transactionManager"
bubuko.com,布布扣      class
="org.springframework.orm.hibernate3.HibernateTransactionManager">
bubuko.com,布布扣       
<property name="sessionFactory">
bubuko.com,布布扣           
<ref local="sessionFactory" />
bubuko.com,布布扣       
</property>
bubuko.com,布布扣    
</bean>
bubuko.com,布布扣    
<!--表示要将下面定义的userDao置于事务处理之下-->
bubuko.com,布布扣  
<bean id="userDaoProxy"
bubuko.com,布布扣      class
="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
bubuko.com,布布扣     
<property name="transactionManager">
bubuko.com,布布扣         
<ref bean="transactionManager" />
bubuko.com,布布扣     
</property>
bubuko.com,布布扣     
<!--要代理userDao-->
bubuko.com,布布扣     
<property name="target">
bubuko.com,布布扣         
<ref local="userDao" />
bubuko.com,布布扣     
</property>
bubuko.com,布布扣    
<!--定义不同情况下,事务处理的方式-->
bubuko.com,布布扣     
<property name="transactionAttributes">
bubuko.com,布布扣         
<props>
bubuko.com,布布扣            
<prop key="create*">PROPAGATION_REQUIRED</prop>
bubuko.com,布布扣            
<prop key="update*">PROPAGATION_REQUIRED</prop>
bubuko.com,布布扣            
<prop key="delete*">PROPAGATION_REQUIRED</prop>
bubuko.com,布布扣            
<prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
bubuko.com,布布扣         
</props>
bubuko.com,布布扣     
</property>
bubuko.com,布布扣   
</bean>
bubuko.com,布布扣   
<!--定义userDao-->
bubuko.com,布布扣  
<bean id="userDao" class="com.myHibernate.dao.impl.UserDAOImpl">
bubuko.com,布布扣       
<property name="sessionFactory">
bubuko.com,布布扣           
<ref local="sessionFactory" />
bubuko.com,布布扣       
</property>
bubuko.com,布布扣  
</bean>
bubuko.com,布布扣    
<!--定义regedit,将UserDAO进行注入-->
bubuko.com,布布扣    
<bean id="regedit" class="com.myHibernate.domain.impl.RegeditImpl">
bubuko.com,布布扣        
<property name="userDao">
bubuko.com,布布扣           
<ref local="userDao" />
bubuko.com,布布扣       
</property>
bubuko.com,布布扣    
</bean>
bubuko.com,布布扣    
<!--定义login,将UserDAO进行注入-->
bubuko.com,布布扣    
<bean id="login" class="com.myHibernate.domain.impl.LoginImpl">
bubuko.com,布布扣        
<property name="userDao">
bubuko.com,布布扣           
<ref local="userDao" />
bubuko.com,布布扣       
</property>
bubuko.com,布布扣    
</bean>
bubuko.com,布布扣    
<!--定义和Struts相应的映射,将regedit进行注入-->
bubuko.com,布布扣    
<bean name="/regedit" class="com.myHibernate.action.RegeditAction">
bubuko.com,布布扣     
<property name="regedit">
bubuko.com,布布扣        
<ref bean="regedit"/>
bubuko.com,布布扣     
</property>
bubuko.com,布布扣    
</bean>
bubuko.com,布布扣    
<!--定义和Struts相应的映射,将login进行注入-->
bubuko.com,布布扣    
<bean name="/login" class="com.myHibernate.action.LoginAction">
bubuko.com,布布扣     
<property name="login">
bubuko.com,布布扣        
<ref bean="login"/>
bubuko.com,布布扣     
</property>
bubuko.com,布布扣    
</bean>
bubuko.com,布布扣
</beans>
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
  然后是Struts的配置文件struts-config.xml:
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣<?xml version="1.0" encoding="UTF-8"?>
bubuko.com,布布扣
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
bubuko.com,布布扣
<struts-config><!--定义formbean--><form-beans><form-bean name="user" type="com.myHibernate.bean.User"/></form-beans>
bubuko.com,布布扣    
<action-mappings>
bubuko.com,布布扣    
<!--定义和SPring配置文件相同的路径-->
bubuko.com,布布扣        
<action path="/regedit" type="org.springframework.web.struts.DelegatingActionProxy" name="user">
bubuko.com,布布扣            
<forward name="regedit" path="/jsp/regedit.jsp"/>
bubuko.com,布布扣        
</action>
bubuko.com,布布扣        
<!--定义初次访问时的路径-->
bubuko.com,布布扣        
<action path="/input"
bubuko.com,布布扣            type
="org.apache.struts.actions.ForwardAction"
bubuko.com,布布扣            parameter
="/jsp/regedit.jsp"/>
bubuko.com,布布扣        
<!--定义和SPring配置文件相同的路径-->
bubuko.com,布布扣        
<action path="/login"
bubuko.com,布布扣            type
="org.springframework.web.struts.DelegatingActionProxy" name="user">
bubuko.com,布布扣             
<forward name="login" path="/jsp/login.jsp"/>
bubuko.com,布布扣        
</action>
bubuko.com,布布扣        
<!--定义初次访问时的路径-->
bubuko.com,布布扣        
<action path="/loginTemp"
bubuko.com,布布扣            type
="org.apache.struts.actions.ForwardAction"
bubuko.com,布布扣            parameter
="/jsp/login.jsp"/>
bubuko.com,布布扣    
</action-mappings>
bubuko.com,布布扣    
<!--注册ContextLoaderPlugIn插件-->
bubuko.com,布布扣    
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
bubuko.com,布布扣          
<set-property property="contextConfigLocation" value="/WEB-INF/spring-config.xml" />
bubuko.com,布布扣    
</plug-in>
bubuko.com,布布扣
</struts-config>
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
  最后是Web应用程序配置文件web.xml:
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣<?xml version="1.0" encoding="UTF-8"?>
bubuko.com,布布扣
<web-app version="2.4" 
bubuko.com,布布扣 xmlns
="http://java.sun.com/xml/ns/j2ee" 
bubuko.com,布布扣 xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" 
bubuko.com,布布扣 xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee 
bubuko.com,布布扣 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
bubuko.com,布布扣    
<servlet>
bubuko.com,布布扣        
<servlet-name>actionServlet</servlet-name>
bubuko.com,布布扣        
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
bubuko.com,布布扣        
<!--初始参数-->
bubuko.com,布布扣        
<init-param>
bubuko.com,布布扣            
<param-name>config</param-name>
bubuko.com,布布扣            
<param-value>/WEB-INF/struts-config.xml</param-value>        
bubuko.com,布布扣        
</init-param>
bubuko.com,布布扣        
<load-on-startup>1</load-on-startup>
bubuko.com,布布扣
</servlet>  
bubuko.com,布布扣
<!--处理所有后缀为do的请求-->
bubuko.com,布布扣    
<servlet-mapping>
bubuko.com,布布扣         
<servlet-name>actionServlet</servlet-name>
bubuko.com,布布扣         
<url-pattern>*.do</url-pattern>
bubuko.com,布布扣    
</servlet-mapping>
bubuko.com,布布扣
</web-app>
bubuko.com,布布扣
bubuko.com,布布扣
bubuko.com,布布扣
    可以看到,MVC的三层架构思路很清晰,但缺点也很明显,配置文件太过于冗杂,CRUD代码随处冗余,不够简约,下一篇文章中我们将见识到一个解决这个问题的优秀框架—SpringSide

structs spring hibernate 三者之间有什么关系?

原文:http://www.cnblogs.com/reynold-lei/p/3547442.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!