<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

    主站蜘蛛池模板: 大学生美女毛片免费视频| 国产精品福利在线观看免费不卡| 亚洲精品视频专区| 久久精品国产亚洲av成人| 久久亚洲高清观看| 在线观看亚洲精品国产| 中文字幕精品亚洲无线码一区| 亚洲欧洲久久久精品| 在线亚洲午夜理论AV大片| 亚洲香蕉成人AV网站在线观看| 国产亚洲情侣一区二区无| 人人狠狠综合久久亚洲88| 国产V亚洲V天堂A无码| 亚洲久本草在线中文字幕| 亚洲视频在线一区二区三区| 亚洲国产美女精品久久| 456亚洲人成在线播放网站| 亚洲国产精品成人午夜在线观看 | 亚洲AV无码久久精品蜜桃| 亚洲乱码中文字幕综合| 亚洲AV无码一区东京热久久| 亚洲一区二区三区首页| 亚洲国产成人在线视频| 亚洲精品久久无码| 又硬又粗又长又爽免费看 | 97在线视频免费| 国产v精品成人免费视频400条| 成**人免费一级毛片| 亚洲成a人片在线播放| 亚洲AV无码乱码在线观看富二代| 亚洲经典在线中文字幕| 亚洲综合精品成人| 国产av无码专区亚洲av毛片搜| 中文字幕无线码中文字幕免费 | 一本久久A久久免费精品不卡| 中文字幕免费在线播放| 114级毛片免费观看| 日本牲交大片免费观看| 亚洲人成人一区二区三区| 亚洲欧洲日产韩国在线| 狠狠综合亚洲综合亚洲色|