熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

spring 編程入門十大問題解答

2013-11-23 20:08:00  來源: Java開源技術 

  如何學習Spring?

  你可以通過下列途徑學習spring) spring下載包中doc目錄下的MVCstepbystep和sample目錄下的例子都是比較好的spring開發的例子

  () AppFuse集成了目前最流行的幾個開源輕量級框架或者工具AntXDocletSpringHibernate(iBATIS)JUnitCactusStrutsTestCaseCanoos WebTestStruts MenuDisplay Tag LibraryOSCacheJSTLStruts 你可以通過AppFuse源代碼來學習spring AppFuse網站?page=AppFuse

  ()Spring 開發指南(夏昕)(_Dev_Guiderar)

  一本spring的入門書籍裡面介紹了反轉控制和依賴注射的概念以及spring的bean管理spring的MVCspring和hibernteiBatis的結合

  () spring學習的中文論壇SpringFramework中文論壇()

  Java視線論壇()的spring欄目

  利用Spring框架編程console打印出logjWARN Please initialize the logj system properly?

  說明你的logjproperties沒有配置請把logjproperties放到工程的classpath中eclipse的classpath為bin目錄由於編譯後src目錄下的文件會拷貝到bin目錄下所以你可以把logjproperties放到src目錄下

  這裡給出一個logjproperties的例子

  logjrootLogger=DEBUGstdout logjappenderstdout=orgapachelogjConsoleAppender logjappenderstdoutlayout=orgapachelogjPatternLayout logjappenderstdoutlayoutConversionPattern=%d %p (%F%L) %m%n

  出現 javalangNoClassDefFoundError?

  一般情況下是由於你沒有把必要的jar包放到lib中

  比如你要采用spring和hibernate(帶事務支持的話)你除了springjar外還需要hibernatjaraopalliancejarcgligjarjakartacommons下的幾個jar包

  下載spring開發包提供兩種zip包springframeworkwithdependencieszip和springframeworkzip我建議你下載springframeworkwithdependencieszip這個zip解壓縮後比後者多一個lib目錄其中有hibernatejeedomjaopalliancejakartacommons等常用包

  javaioFileNotFoundException Could not open class path resource [……hbmxml]提示找不到xml文件?

  原因一般有兩個)該xml文件沒有在classpath中

  ()applicationContexthibernatexml中的xml名字沒有帶包名比如<bean id=sessionFactory class=orgspringframeworkormhibernateLocalSessionFactoryBean> <property name=dataSource><ref bean=dataSource/></property> <property name=mappingResources> <list> <value>Userhbmxml</value>         錯改為 <value>com/yz/spring/domain/Userhbmxml</value> </list> </property> <property name=hibernateProperties> <props> <prop key=hibernatedialect> netsfhibernatedialectMySQLDialect </prop> <prop key=hibernateshow_sql>true</prop> </props> </property> </bean>

  orgspringframeworkbeansNotWritablePropertyException Invalid property postDao of bean class?

  出現異常的原因是在applicationxxxxml中property name的錯誤

  <property name=……> 中name的名字是與bean的set方法相關的而且要注意大小寫

  比如public class PostManageImpl extends BaseManage implements PostManage { private PostDAO dao = nullpublic void setPostDAO(PostDAO postDAO){ thisdao = postDAO}那麼xml的定義應該是<bean id=postManage parent=txProxyTemplate> <property name=target> <bean class=comyzspringserviceimplementPostManageImpl> <property name=postDAO><ref bean=postDAO/></property>    對<property name=dao><ref bean=postDAO/></property>             錯</bean> </property> </bean>

  Spring中如何實現事務管理?

  首先如果使用mysql確定mysql為InnoDB類型

  事務管理的控制應該放到商業邏輯層你可以寫個處理商業邏輯的JavaBean在該JavaBean中調用DAO然後把該Bean的方法納入spring的事務管理

  比如xml文件定義如下<bean id=txProxyTemplate abstract=true class=orgspringframeworktransactioninterceptorTransactionProxyFactoryBean> <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=comyzspringserviceimplementUserManageImpl> <property name=userDAO><ref bean=userDAO/></property> </bean> </property> </bean>

  comyzspringserviceimplementUserManageImpl就是我們的實現商業邏輯的JavaBean我們通過parent元素?/span>

  如何管理Spring框架下更多的JavaBean?

  JavaBean越多spring配置文件就越大這樣不易維護為了使配置清晰我們可以將JavaBean分類管理放在不同的配置文件中 應用啟動時將所有的xml同時加載

  比如

  DAO層的JavaBean放到applicationContexthibernatexml中商業邏輯層的JavaBean放到applicationContextservicexml中然後啟動類中調用以下代碼載入所有的ApplicationContext

  String[] paths = {com/yz/spring/dao/hibernate/applicationContexthibernatexmlcom/yz/spring/service/applicationContextservicexml}ctx = new ClassPathXmlApplicationContext(paths)

  web應用中如何加載ApplicationContext?

  可以通過定義webxml由web容器自動加載

  <servlet><servletname>context</servletname><servletclass>orgsprntextContextLoaderServlet</servletclass><loadonstartup></loadonstartup></servlet>

  <contextparam><paramname>contextConfigLocation</paramname><paramvalue>/WEBINF/applicationContexthibernatexml</paramvalue><paramvalue>/WEBINF/applicationContextservicexml</paramvalue></contextparam>

  在spring中如何配置的logj?

  在webxml中加入以下代碼即可

  <contextparam><paramname>logjConfigLocation</paramname><paramvalue>/WEBINF/logjproperties</paramvalue></contextparam>

  Spring框架入門的編程問題解決了我該如何更深地領會Spring框架呢?

  這兩本書你該去看看這兩本書是由Spring的作者Rod Johnson編寫的

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

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


From:http://tw.wingwit.com/Article/program/Java/ky/201311/27991.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.