<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 31  文章 - 2  trackbacks - 0

    雖然是簡單的用戶登錄,但東西一點不少,基于MVC原理實現,共分DAO層,SERVICE層,ACTION層和WEB層,其中DAO和SERVICE層都有各自的接口。

    今天主要講解配置文件的代碼,我學習實例,喜歡從控制層出發,然后用到了哪些類或者JSP,再一一扯“蛋”扯出來。

    當然,還是先看web.xml

    1. <?xml?version="1.0"?encoding="UTF-8"?>??
    2. <web-app?xmlns="http://java.sun.com/xml/ns/j2ee"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?version="2.4"??
    3. ?????????xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee?http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">??
    4. ????<!--?Spring?ApplicationContext配置文件的路徑?,可使用通配符,多個路徑用?1,號分隔,此參數用于后面的Spring-Context?loader?-->??
    5. ????<context-param>??
    6. ????????<param-name>contextConfigLocation</param-name>??
    7. ????????<param-value>classpath*:spring/*.xml</param-value>??
    8. ????</context-param>??
    9. ??
    10. ???? ??
    11. ????<!--?著名?Character?Encoding?filter?-->??
    12. ????<filter>??
    13. ????????<filter-name>encodingFilter</filter-name>??
    14. ????????<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>??
    15. ????????<init-param>??
    16. ????????????<param-name>encoding</param-name>??
    17. ????????????<param-value>UTF-8</param-value>??
    18. ????????</init-param>??
    19. ????</filter>??
    20. ????<!--Hibernate?Open?Session?in?View?Filter-->??
    21. ????<filter>??
    22. ????????<filter-name>hibernateFilter</filter-name>??
    23. ????????<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>??
    24. ????</filter>??
    25. ????<!--?ExtremeTable?導出Excel和Pdf的Filter?-->??
    26. ????<filter>??
    27. ????????<filter-name>eXtremeExport</filter-name>??
    28. ????????<filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class>??
    29. ????</filter>??
    30. ????<filter-mapping>??
    31. ????????<filter-name>encodingFilter</filter-name>??
    32. ????????<url-pattern>*.do</url-pattern>??
    33. ????</filter-mapping>??
    34. ????<filter-mapping>??
    35. ????????<filter-name>encodingFilter</filter-name>??
    36. ????????<url-pattern>*.jsp</url-pattern>??
    37. ????</filter-mapping>??
    38. ????<filter-mapping>??
    39. ????????<filter-name>hibernateFilter</filter-name>??
    40. ????????<url-pattern>*.do</url-pattern>??
    41. ????</filter-mapping>??
    42. ??
    43. ??
    44. ????<!--Spring?ApplicationContext?載入?-->??
    45. ????<listener>??
    46. ????????<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>??
    47. ????</listener>??
    48. ??
    49. ????<!--?Spring?刷新Introspector防止內存泄露?-->??
    50. ????<listener>??
    51. ????????<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>??
    52. ????</listener>??
    53. ??
    54. ???? ??
    55. ????<!--?session超時定義,單位為分鐘?-->??
    56. ????<session-config>??
    57. ????????<session-timeout>10</session-timeout>??
    58. ????</session-config>??
    59. ??
    60. </web-app>
    東西很簡單,無非是配置一些過濾器呀,監聽器的。主要講一下openSessionInViewFilter吧,假設在你的應用中 Hibernate是通過spring 來管理它的session.如果在你的應用中沒有使用OpenSessionInViewFilter或者 OpenSessionInViewInterceptor。session會在transaction結束后關閉,此時會拋出session is close 的異常。關于這方面的知識,值得大家去找一下相關資料仔細閱讀。 strut2.xm
    ?
    1. "-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN" ??
    2. ????????"http://struts.apache.org/dtds/struts-2.0.dtd">? ??
    3. <struts?>? ??
    4. ????<include?file?="struts-default.xml"/>???? ??
    5. ???? ??
    6. ????<package?name?="default"?extends?="struts-default">? ??
    7. ????????<action?name="login"?method="login"?class="userAction">??
    8. ????????????<result>/login_success.jspresult>??
    9. ????????????<result?name="input">/login.jspresult>??
    10. ????????action>??
    11. package>??
    12. ???? ??
    13. struts>??
    可能注意到了,這里的Action交給SPRING來管理了。所以我們看一下application.xml的代碼吧
  • <xml?version="1.0"?encoding="UTF-8"?>? ??
  • <beans>??? ??
  • ????<bean?id="dataSource"?class="com.mchange.v2.c3p0.ComboPooledDataSource"?destroy-method="close">?????? ??
  • ????????<property?name="driverClass"?value="oracle.jdbc.driver.OracleDriver"?/>?????? ??
  • ????????<property?name="jdbcUrl"?value="jdbc:oracle:thin:@localhost:1521:oracleDB"?/>?????? ??
  • ????????<property?name="user"?value="xxx"?/>?????? ??
  • ????????<property?name="password"?value="xxx"?/>??????????? ??
  • ???????????????? ??
  • ????????<property?name="minPoolSize"?value="3"?/>???? ??
  • ????????????? ??
  • ????????<property?name="maxPoolSize"?value="30"?/>???? ??
  • ??????????????????? ??
  • ????????<property?name="maxIdleTime"?value="1800"?/>???? ??
  • ??????????????????? ??
  • ????????<property?name="acquireIncrement"?value="3"?/>????? ??
  • ????????<property?name="maxStatements"?value="0"?/>?????? ??
  • ????????<property?name="initialPoolSize"?value="3"?/>?????? ??
  • ??????????? ??
  • ????????<property?name="idleConnectionTestPeriod"?value="60"?/>?????? ??
  • ??????????? ??
  • ????????<property?name="acquireRetryAttempts"?value="30"?/>?????? ??
  • ????????<property?name="breakAfterAcquireFailure"?value="true"?/>?????????? ??
  • ????????<property?name="testConnectionOnCheckout"?value="false"?/>?????? ??
  • ????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.Oracle9Dialectprop>??? ??
  • ????????????????<prop?key="hibernate.show_sql">trueprop>??? ??
  • ????????????????<prop?key="hibernate.generate_statistics">trueprop>??? ??
  • ????????????????<prop?key="hibernate.connection.release_mode">autoprop>??? ??
  • ????????????????<prop?key="hibernate.autoReconnect">trueprop>???????????????? ??
  • ????????????props>??? ??
  • ????????property>??? ??
  • ????????<property?name="mappingDirectoryLocations">???? ??
  • ????????<list>??? ??
  • ????????????<value>??? ??
  • ????????????????classpath:com/caitong/pingou/bean??? ??
  • ????????????value>??? ??
  • ????????list>???????????????????????????? ??
  • ????????property>??? ??
  • ????bean>???? ??
  • ??????? ??
  • ????<bean?id="transactionManager"?class="org.springframework.orm.hibernate3.HibernateTransactionManager">??????? ??
  • ??????????<property?name="sessionFactory">??????? ??
  • ??????????????<ref?bean="sessionFactory"/>??????? ??
  • ??????????property>??????? ??
  • ????bean>????? ??
  • ??????????? ??
  • ????<bean?id="transactionInterceptor"?class="org.springframework.transaction.interceptor.TransactionInterceptor">??????? ??
  • ????????<property?name="transactionManager"?ref="transactionManager"/>??????? ??
  • ????????<property?name="transactionAttributes">????? ??
  • ????????????<props>????? ??
  • ??????????????????? ??
  • ????????????????<prop?key="add*">PROPAGATION_REQUIREDprop>????? ??
  • ????????????????<prop?key="find*">PROPAGATION_REQUIRED,readOnlyprop>????? ??
  • ????????????props>????? ??
  • ????????property>????? ??
  • ????bean>??????? ??
  • ?????????????? ??
  • ???<bean?class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">??????? ??
  • ????????<property?name="beanNames">????? ??
  • ????????????<value>*Servicevalue>????? ??
  • ????????property>????? ??
  • ????????<property?name="interceptorNames">??????? ??
  • ????????????<list>??????? ??
  • ????????????????<value>transactionInterceptorvalue>??????? ??
  • ??????????????????????? ??
  • ????????????list>??????? ??
  • ????????property>??????? ??
  • ????bean>??????? ??
  • ??????? ??
  • ????<bean?class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">??????? ??
  • ??????????<property?name="transactionInterceptor"?ref="transactionInterceptor"/>??????? ??
  • ????bean>????? ??
  • ??????? ??
  • ????<bean?id="baseDAO"?class="com.caitong.pingou.dao.impl.BaseDAO"?abstract="true">??? ??
  • ????????<property?name="sessionFactory">??? ??
  • ????????????<ref?bean="sessionFactory"/>??? ??
  • ????????property>??? ??
  • ????bean>??? ??
  • ????<bean?id="userDAO"???? ??
  • ????????class="com.caitong.pingou.dao.impl.UserDAO"?parent="baseDAO">??? ??
  • ????bean>??? ??
  • ??????? ??
  • ????<bean?id="userService"?class="com.caitong.pingou.service.impl.UserService"???? ??
  • ????????autowire="byName">??? ??
  • ????bean>??? ??
  • ??????? ??
  • ????<bean?id="userAction"?class="com.caitong.pingou.action.UserAction"????????? ??
  • ????????autowire="byName">??? ??
  • ????bean>??? ??
  • beans>????
  • 應 該說SPRING太強大了,以至于一個配置文件可以解決任何一件事情。簡單介紹一下這個配置文件吧,例子用的是c3p0的數據庫鏈接池, hibernate的配置文件也都集成在這里了,如果細心的讀者,可能注意到了事務管理模塊。是的,本例的事務管理是由spring來管理,而且集中在 service層
    <property?name="beanNames">?? ??
  • ????????????<value>*Servicevalue>?? ??
  • ????????property>?
  • 有人可能提出問題,為什么非得要放在service層,而不是dao層,應該說,事務管理有一個不成文的規定,盡量將問題放在上層處理。
    然后每個類由SPRING來管理,并且autowire="byName"來尋找依賴注入的bean。

    所有的xml文件都已經配置完了,其實最重要也是這個,XML文件將是框架的一個趨勢,掌握了它,其實你已經打開了這個框架的門。



    posted on 2008-03-02 21:12 緣來如此 閱讀(3751) 評論(0)  編輯  收藏 所屬分類: AJAX
    主站蜘蛛池模板: 亚洲精品蜜夜内射| 国内少妇偷人精品视频免费| 亚洲av纯肉无码精品动漫| 国内精品免费在线观看| 亚洲人成中文字幕在线观看| 亚洲精品人成网在线播放影院| 亚洲av综合日韩| 大学生高清一级毛片免费| 国产亚洲精aa成人网站| 免费中文字幕视频| 91精品免费在线观看| 亚洲AV无码乱码精品国产| 黄色免费网站在线看| 四虎影视永久免费视频观看| 亚洲Av无码专区国产乱码DVD| 国产在线播放线91免费| 成人激情免费视频| 亚洲AV无码资源在线观看| 青草草在线视频永久免费| 亚洲成a人片77777老司机| 67pao强力打造国产免费| 亚洲av永久无码嘿嘿嘿| 免费av一区二区三区| 亚洲视频免费一区| 国产成人无码精品久久久免费 | 亚洲精品美女久久久久久久| 四虎影视永久免费视频观看| gogo免费在线观看| 亚洲欧洲日产国产综合网| 久久WWW色情成人免费观看| 亚洲成AV人片天堂网无码| 美丽的姑娘免费观看在线播放| 亚洲卡一卡二卡乱码新区| 四虎精品亚洲一区二区三区| 亚洲 暴爽 AV人人爽日日碰| 四虎成人精品在永久免费| 暖暖免费日本在线中文| 亚洲中文字幕无码一去台湾 | 一区二区3区免费视频| 久久久亚洲欧洲日产国码二区| 成年女人男人免费视频播放|