`
yueguangyuan
  • 浏览: 332895 次
  • 性别: Icon_minigender_1
  • 来自: 新加坡
社区版块
存档分类
最新评论

项目总结(Ajax+Struts+Spring+Hiberante+SQLServer2000) 第一部分

阅读更多

 

 

总算将一个项目勉强上线,也是第一次我独立完成的这么多任务,框架设计、框架搭建、代码编写、测试、数据库创建、表结构设计……除了页面和详细设计我都做了个遍,虽然很仓促也犯了很多错误,但是整个过程走下来,发现自己真的学到不少东西。在这个空档期写个小总结,以便以后使用 :)

 现在框架真是多的要死,也没有什么真正能一统天下的东西,每个人的着眼点和技术习惯都不同,在刚接到项目的时候,老大就要我自己去确定框架。当时我正沉迷于TapeStry+Spring+iBatis开发的畅快之中,当时真想直接将自己的东西移植过去,但是一想公司陆续会有其他人进来加入到项目中,那么TSS这个框架肯定很难找到合适的人选,而且自己在研究TSS的过程中也发现由于文档的缺乏,遇到问题的解决就是一个很严重的问题,最终只能弃用。虽然我很喜欢T4,但是它实在不让人放心,只好期待Howard能给我们不断带来惊喜,真正成为继Struts、WebWork之后的最优选择。有时间我还会继续学习T4,并做一下总结。

经过当时的考虑,我只得放弃TSS,最终选择自己相对熟悉的Struts+Spring+Hibernate,说是熟悉,那是因为以前的项目是用这个,有网友戏称SSH是庸俗组合,呵呵,庸俗就庸俗吧,我想自己能把这套东西搞好也会有相当的难度的(现在证明这个选择是对的,出了问题有人问,项目组的其他人也都是玩这套东西的,维护扩展都方便)。

 

具体细节就不再描绘了,做软件的都知道问题无法解决是多么的折磨人,这其中的酸甜苦辣只有经历过的人才知道,技术上的问题是遇到一个解决一个,实在觉得解决不了或者没有把握,利马换其他想法,这个很重要,实现的方法有很多,即便不是最优的解决方案,但是节省的大量的时间,在工期紧的时候一定要权衡的去考虑,否则后果不堪设想。

总体框架(SSH)需要4个重要的配置文件:

1.web.xml

 

<!---->xml version="1.0" encoding="UTF-8"?>
<!---->DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd"
>
<web-app>
    
<display-name>sampledisplay-name>
    
<context-param> 
        
<param-name>contextConfigLocationparam-name> 
        
<param-value>/WEB-INF/applicationContext.xmlparam-value> 
    
context-param> 
    
<!---->
    
<filter>
        
<filter-name>OpenSessionInViewFilterfilter-name>
        
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilterfilter-class>
        
<!----> 
        
<init-param> 
            
<param-name>singleSessionparam-name> 
            
<param-value>trueparam-value>
        
init-param>
    
filter>
    
<filter-mapping> 
        
<filter-name>OpenSessionInViewFilterfilter-name> 
        
<url-pattern>/*url-pattern> 
    
filter-mapping>
    
<!---->
    
<filter>
        
<filter-name>Set Character Encodingfilter-name>
        
<filter-class>com.shpcims.util.SetCharacterEncodingFilterfilter-class>
        
<init-param>
            
<param-name>encodingparam-name>
            
<param-value>utf-8param-value> 
        
init-param>
    
filter>
    
<filter-mapping>
        
<filter-name>Set Character Encodingfilter-name>
        
<servlet-name>actionservlet-name>
    
filter-mapping>
    
<!---->
    
<listener> 
        
<listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class> 
    
listener>

    
    
<servlet>
        
<servlet-name>actionservlet-name>
        
<servlet-class>org.apache.struts.action.ActionServletservlet-class>
        
<init-param>
            
<param-name>configparam-name>
            
<param-value>/WEB-INF/struts-config.xmlparam-value>
        
init-param>
        
<init-param>
            
<param-name>debugparam-name>
            
<param-value>3param-value>
        
init-param>
        
<init-param>
            
<param-name>detailparam-name>
            
<param-value>3param-value>
        
init-param>
        
<load-on-startup>1load-on-startup>
    
servlet>
    
<servlet-mapping>
    
<servlet-name>actionservlet-name>
        
<url-pattern>*.dourl-pattern>
    
servlet-mapping>
    
    
    
<welcome-file-list>
        
<welcome-file>index.jspwelcome-file>
    
welcome-file-list>
    
    
<taglib>
        
<taglib-uri>/WEB-INF/struts-bean.tldtaglib-uri>
        
<taglib-location>/WEB-INF/struts-bean.tldtaglib-location>
    
taglib>
    
<taglib>
        
<taglib-uri>/WEB-INF/struts-html.tldtaglib-uri>
        
<taglib-location>/WEB-INF/struts-html.tldtaglib-location>
    
taglib>
    
<taglib>
        
<taglib-uri>/WEB-INF/struts-logic.tldtaglib-uri>
        
<taglib-location>/WEB-INF/struts-logic.tldtaglib-location>
    
taglib>
    
<taglib>
        
<taglib-uri>/WEB-INF/struts-tiles.tldtaglib-uri>
        
<taglib-location>/WEB-INF/struts-tiles.tldtaglib-location>
    
taglib>
    
<taglib>
        
<taglib-uri>/WEB-INF/CustomTag.tldtaglib-uri>
        
<taglib-location>/WEB-INF/tags/CustomTag.tldtaglib-location>
    
taglib>
web-app>

2.Struts-config.xml

<!---->xml version="1.0" encoding="UTF-8" ?>
<!---->DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"
>
<struts-config>
    
    
<!---->
    
<form-beans>
        
<form-bean name="loginForm" type="com.shpcims.web.login.form.LoginForm" />    form-beans>
    
<global-forwards>
        
<forward name="web_report" path="/reporter"/>
        
<forward name="report_fail" path="/WEB-INF/jsp/SystemError.jsp"/>
    
global-forwards>
    
    
<!---->
    
<action-mappings>
        
<action path="/LoginAction"
                type
="org.springframework.web.struts.DelegatingActionProxy"
                scope
="request"
                name
="loginForm"
                validate
="true"
                input
="/index.jsp">
            
<forward name="success"     path="/CreditInfoPreAction.do" />
            
<forward name="fail"         path="/index.jsp" />
        
action>
        
    
action-mappings>
    
    
<!---->
    
<controller>
       
<set-property property="processorClass" value="com.shpcims.framework.CustomerRequestProcessor" />
    
controller>
    
    
<!---->
    
<message-resources parameter="ApplicationResources" />
    
    
<!---->
    
<!---->
    
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
        
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
        
<set-property property="definitions-debug" value="2" />
        
<set-property property="definitions-parser-details" value="2" />
        
<set-property property="definitions-parser-validate" value="true" />
    
plug-in>
    
<!---->
    
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        
<set-property property="contextConfigLocation" value="/WEB-INF/beans.xml" />
    
plug-in>    
    
<!---->
    
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        
<set-property
            
property="pathnames"
                value
="/WEB-INF/validaterule/validator-rules.xml,
               /WEB-INF/validaterule/validation.xml
        "
/>
    
plug-in>
struts-config>

3.applicationContext.xml

 

<!---->xml version="1.0" encoding="UTF-8"?>
<!---->DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 
<beans>
    
<!---->
    
<bean id="chartService" parent="baseTransactionProxy">
        
<property name="target">
            
<bean class="com.shpcims.service.ChartServiceImpl">
            
bean>
        
property>
    
bean>    
    
    
<!---->
    
<bean id="customDao" class="com.shpcims.dao.CustomDaoImpl">
        
<property name="sessionFactory" ref="sessionFactory" />
    
bean>
<!---->
    
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        
<property name="dataSource" ref="dataSource" />
        
<!---->
<img alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/Outlinin
分享到:
评论
3 楼 laitaogood 2010-02-03  
yueguangyuan 写道
laitaogood 写道
06年6月就搞了SSH啊,我07年9月才完整的搞了一个SSH项目
小月,我越来越佩服你了,先驱啊


啥先驱  先躯还差不多   这么多年都没啥长进  现在用Struts1+iBatis 一用好几年 

呃,如果是我可能早就烦了,呵呵
不过如果能深入的了解下页不错啊
2 楼 yueguangyuan 2010-02-02  
laitaogood 写道
06年6月就搞了SSH啊,我07年9月才完整的搞了一个SSH项目
小月,我越来越佩服你了,先驱啊


啥先驱  先躯还差不多   这么多年都没啥长进  现在用Struts1+iBatis 一用好几年 
1 楼 laitaogood 2010-01-26  
06年6月就搞了SSH啊,我07年9月才完整的搞了一个SSH项目
小月,我越来越佩服你了,先驱啊

相关推荐

Global site tag (gtag.js) - Google Analytics