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

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

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

    WEB2.0開發

    心態決定行為,行為決定習慣,習慣決定命運

    Spring 編程入門十大問題解答

    1 、如何學習 Spring ?
      你可以通過下列途徑學習 spring
       (1) spring 下載包中 doc 目錄下的 MVC-step-by-step sample 目錄下的例子都是比較好的 spring 開發的例子。
       (2) AppFuse 集成了目前最流行的幾個開源輕量級框架或者工具 Ant,XDoclet,Spring,Hibernate(iBATIS),JUnit,Cactus,StrutsTestCase,Canoo's WebTest,Struts Menu,Display Tag Library,OSCache,JSTL,Struts 。
      你可以通過 AppFuse 源代碼來學習 spring
    AppFuse 網站: http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse
       (3)Spring 開發指南 ( 夏昕 ) http://www.xiaxin.net/Spring_Dev_Guide.rar
      一本 spring 的入門書籍 , 里面介紹了反轉控制和依賴注射的概念,以及 spring bean 管理, spring MVC , spring hibernte iBatis 的結合。
       (4) spring 學習的中文論壇
       SpringFramework 中文論壇 (http://spring.jactiongroup.net)
       Java 視線論壇 (http://forum.javaeye.com) spring 欄目
       2 、利用 Spring 框架編程, console 打印出 log4j:WARN Please initialize the log4j system properly
      說明你的 log4j.properties 沒有配置。請把 log4j.properties 放到工程的 classpath 中, eclipse classpath bin 目錄,由于編譯后 src 目錄下的文件會拷貝到 bin 目錄下,所以你可以把 log4j.properties 放到 src 目錄下。
      這里給出一個 log4j.properties 的例子:

    log4j.rootLogger=DEBUG,stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d %5p (%F:%L) - %m%n

       3 、出現 java.lang.NoClassDefFoundError?
      一般情況下是由于你沒有把必要的 jar 包放到 lib 中。
      比如你要采用 spring hibernate (帶事務支持的話),你除了 spring.jar 外還需要 hibernat.jar aopalliance.jar 、 cglig.jar 、 jakarta-commons 下的幾個 jar 包。
    http://www.springframework.org/download.html 下載 spring 開發包,提供兩種 zip
    spring-framework-1.1.3-with-dependencies.zip spring-framework-1.1.3.zip ,我建議你下載 spring-framework-1.1.3-with-dependencies.zip 。這個 zip 解壓縮后比后者多一個 lib 目錄,其中有 hibernate 、 j2ee dom4j 、 aopalliance 、 jakarta-commons 等常用包。
       4 java.io.FileNotFoundException: Could not open class path resource [....hbm.xml], 提示找不到 xml 文件?
      原因一般有兩個:
       (1) xml 文件沒有在 classpath 中。
       (2)applicationContext-hibernate.xml 中的 xml 名字沒有帶包名。比如:

    bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean"
    property name="dataSource" >< ref bean="dataSource"/ >< /property
    property name="mappingResources"
     < list
     ?。?/span> value User.hbm.xml /value
      錯,改為:
     ?。?/span> value com/yz/spring/domain/User.hbm.xml /value
     < /list
    /property
    property name="hibernateProperties"
    props
    ?。?/span> prop key="hibernate.dialect" net.sf.hibernate.dialect.MySQLDialect /prop
    ?。?/span> prop key="hibernate.show_sql" true /prop
    /props
    /property
    /bean

       5 、 org.springframework.beans.NotWritablePropertyException: Invalid property 'postDao' of bean class
      出現異常的原因是在 application-xxx.xml property name 的錯誤。
     ?。?/span> property name="...." name 的名字是與 bean set 方法相關的,而且要注意大小寫。
      比如

    public class PostManageImpl extends BaseManage implements PostManage {
      private PostDAO dao = null;
      public void setPostDAO(PostDAO postDAO){
       this.dao = postDAO;
      }
    }

      那么 xml 的定義應該是:

    bean id="postManage" parent="txProxyTemplate"
    property name="target"
    ?。?/span> bean class="com.yz.spring.service.implement.PostManageImpl"
     ?。?/span> property name="postDAO" >< ref bean="postDAO"/ >< /property
     ?。?/span> property name="dao" >< ref bean="postDAO"/ >< /property
     < /bean
    /property
    /bean

       6 、 Spring 中如何實現事務管理?
      首先,如果使用 mysql ,確定 mysql InnoDB 類型。
      事務管理的控制應該放到商業邏輯層。你可以寫個處理商業邏輯的 JavaBean ,在該 JavaBean 中調用 DAO ,然后把該 Bean 的方法納入 spring 的事務管理。
      比如: xml 文件定義如下:

    bean id="txProxyTemplate" abstract="true"
    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"

    property name="transactionManager" >< ref bean="transactionManager"/ >< /property
    property name="transactionAttributes"
    props
    prop key="save*" PROPAGATION_REQUIRED /prop
    prop key="remove*" PROPAGATION_REQUIRED /prop
    prop key="*" PROPAGATION_REQUIRED /prop
    /props
    /property
    /bean

    bean id="userManage" parent="txProxyTemplate"
    ?。?/span> property name="target"
     ?。?/span> bean class="com.yz.spring.service.implement.UserManageImpl"
       < property name="userDAO" >< ref bean="userDAO"/ >< /property
     ?。?/span> /bean
    ?。?/span> /property
    /bean

       com.yz.spring.service.implement.UserManageImpl 就是我們的實現商業邏輯的 JavaBean 。我們通過 parent 元素聲明其事務支持。
       7 、如何管理 Spring 框架下更多的 JavaBean ?
       JavaBean 越多, spring 配置文件就越大,這樣不易維護。為了使配置清晰,我們可以將 JavaBean 分類管理,放在不同的配置文件中。 應用啟動時將所有的 xml 同時加載。
      比如:
       DAO 層的 JavaBean 放到 applicationContext-hibernate.xml 中,商業邏輯層的 JavaBean 放到 applicationContext-service.xml 中。然后啟動類中調用以下代碼載入所有的 ApplicationContext 。

    String[] paths = {"com/yz/spring/dao/hibernate/applicationContext-hibernate.xml",
    "com/yz/spring/service/applicationContext-service.xml"};
    ctx = new ClassPathXmlApplicationContext(paths);

       8 web 應用中如何加載 ApplicationContext
      可以通過定義 web.xml ,由 web 容器自動加載。

    servlet
    servlet-name context /servlet-name
    servlet-class org.springframework.web.context.ContextLoaderServlet /servlet-class
    load-on-startup 1 /load-on-startup
    /servlet

    context-param
    param-name contextConfigLocation /param-name
    param-value /WEB-INF/applicationContext-hibernate.xml /param-value
    param-value /WEB-INF/applicationContext-service.xml /param-value
    /context-param

       9 、在 spring 中如何配置的 log4j?
      在 web.xml 中加入以下代碼即可。

    context-param
    param-name log4jConfigLocation /param-name
    param-value /WEB-INF/log4j.properties /param-value
    /context-param

       10 、 Spring 框架入門的編程問題解決了,我該如何更深地領會 Spring 框架呢?
      這兩本書你該去看看。這兩本書是由 Spring 的作者 Rod Johnson 編寫的。

    Expert One on one J2EE Design and Development
    Expert One on one J2EE Development Without EJB

      你也該看看 martinfowler Inversion of Control Containers and the Dependency Injection pattern 。

    http://www.martinfowler.com/articles/injection.html

      再好好研讀一下 spring 的文檔。

    http://www.jactiongroup.net/reference/html/index.html (中文版,未全部翻譯)

    posted on 2006-04-05 12:29 ymx 閱讀(275) 評論(0)  編輯  收藏 所屬分類: Spring

    主站蜘蛛池模板: 丝袜足液精子免费视频| 色偷偷亚洲第一综合网| 最近2019中文免费字幕在线观看 | 久久久精品2019免费观看| 亚洲色中文字幕无码AV| 精品无码一级毛片免费视频观看 | 亚洲AV无码久久寂寞少妇| 日韩电影免费在线观看网站| 亚洲色婷婷六月亚洲婷婷6月| a视频免费在线观看| 亚洲AV无码专区电影在线观看| 免费国产叼嘿视频大全网站| 久久久久亚洲av无码专区| 国产精品爱啪在线线免费观看| 日本亚洲免费无线码 | 在线A级毛片无码免费真人| 国产精品亚洲精品久久精品| 亚洲国产免费综合| 中文字幕乱码系列免费| 亚洲人成在线电影| 成全影视免费观看大全二| 美女视频黄频a免费观看| 亚洲乱码无码永久不卡在线| 4444www免费看| 亚洲精品无码成人| 久久久久亚洲精品中文字幕| 无码日韩精品一区二区免费暖暖 | 国产成人亚洲精品91专区高清 | 久久亚洲精品11p| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 午夜亚洲国产精品福利| 亚洲av一综合av一区| 毛片a级毛片免费播放下载| 色婷婷六月亚洲综合香蕉| 亚洲无线一二三四区手机| 91久久精品国产免费直播| 最新亚洲人成网站在线观看| 亚洲人成网7777777国产| 在线天堂免费观看.WWW| 国产精品免费久久| 亚洲二区在线视频|