<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
      < value User.hbm.xml /value
      錯,改為:
      < value com/yz/spring/domain/User.hbm.xml /value
     < /list
    /property
    property name="hibernateProperties"
    props
     < prop key="hibernate.dialect" net.sf.hibernate.dialect.MySQLDialect /prop
     < 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 的錯誤。
      < 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"
     < bean class="com.yz.spring.service.implement.PostManageImpl"
      < property name="postDAO" >< ref bean="postDAO"/ >< /property
      < 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"
     < property name="target"
      < bean class="com.yz.spring.service.implement.UserManageImpl"
       < property name="userDAO" >< ref bean="userDAO"/ >< /property
      < /bean
     < /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 閱讀(276) 評論(0)  編輯  收藏 所屬分類: Spring

    主站蜘蛛池模板: 国产精品久免费的黄网站| 亚洲老熟女五十路老熟女bbw| 成人av免费电影| 四虎影视成人永久免费观看视频| 国产亚洲精彩视频| 国产婷婷综合丁香亚洲欧洲| 久久精品视频亚洲| 亚洲人成无码网WWW| 免费特级黄毛片在线成人观看| 99久久国产精品免费一区二区 | 国产成人亚洲综合网站不卡| 亚洲国产精品一区二区第一页| 亚洲Av无码国产情品久久| 成人a视频片在线观看免费| 中国xxxxx高清免费看视频| A片在线免费观看| 国产激情久久久久影院老熟女免费 | 亚洲精品国产第1页| 国产亚洲精品va在线| 亚洲精品456播放| 国产一级理论免费版| 女人18特级一级毛片免费视频| 97碰公开在线观看免费视频| 最近最好最新2019中文字幕免费| 免费看一区二区三区四区| 久久九九免费高清视频| 草久免费在线观看网站| 国产亚洲视频在线观看| 国产成人综合亚洲| 高h视频在线免费观看| 色偷偷亚洲第一综合网| 国产精品亚洲专一区二区三区| 蜜桃传媒一区二区亚洲AV| 亚洲精品无码专区| 亚洲中文字幕精品久久| 亚洲入口无毒网址你懂的| 亚洲免费闲人蜜桃| 香蕉大伊亚洲人在线观看| 亚洲中文字幕一区精品自拍| 亚洲日本VA中文字幕久久道具| 亚洲精品无AMM毛片|