開發SSH應用的筆記

開發環境:Struts1.2 Spring2.0 Hibernate3.2

 

1、在web.xml中加載Spring的配置文件


2、配置屬性文件


3、依賴注入配置

注:對beans的設置
<beans default-autowire="byName" default-lazy-init="true">...</beans>

4、Spring怎樣注入Class<T>(泛型類型對象)?
在事務配置時,將proxy-target-class設置爲false即可。不能爲true,因爲要針對接口代理。
如:<aop:config proxy-target-class="false">

5、Spring中採用構造方法注入注意要點:
在配置文件中顯式書寫注入的參數。如:

多個參數的構造函數示例

6、Spring 2.0 結合AspectJ pointcut語法配置AOP詳解
Spring參考文檔 7.3 chema-based AOP support 提供了aspect,advisor,advide三種組裝方法的解釋,其中aspect是aspectJ原裝,但稍複雜。


以上幾句定義使用cglib創建Proxy, 爲BookManager的save()和remove()加上lowStockBookFlushingAdvice,爲 BookStockChecker.getLowStockBooks加上lowStockBookCachingAdvice.

execution(* *..BookManager.save(..))
第一顆* 代表ret-type-pattern 返回值可任意,
*..BookManager 代表任意Pacakge裏的BookManager類。
如果寫成com.xyz.service.* 則代表com.xyz.service下的任意類
com.xyz.service..* com.xyz.service則代表com.xyz.service及其子package下的任意類
save代表save方法,也可以寫save* 代表saveBook()等方法
(..) 匹配0個參數或者多個參數的,任意類型
(x,..) 第一個參數的類型必須是X
(x,*,*,s,..) 匹配至少4個參數,第一個參數必須是x類型,第二個和第三個參數可以任意,第四個必須是s類型。

7、事務配置的不同形式
事務配置一:

事務配置二:

事務配置三:(在java文件中配置)
需要單獨配置事務的類名前配置事務開啓
@Transactional(propagation = Propagation.SUPPORTS)
需要使用事務的方法前配置開啓事務的信息
@Transactional(propagation = Propagation.REQUIRED)

例如:


8、spring中bean的作用域詳解
參考:http://doc.javanb.com/spring-framework-reference-zh-2-0-5/ch03s04.html


9、 WEB-INF/lib/下asm.jar和asm-2.2.3.jar衝突,應該刪除asm-2.2.3.jar。


10、 如果某個Action需要處理<html:cancel/>

if(isCancelled(request)){
            
return mapping.findForward("fail");
            
        }

需要在struts-config.xml中添加第8行

 1  <action
 2       attribute="loginForm"
 3       input="/login.jsp"
 4       name="loginForm"
 5       path="/login"
 6       scope="request"
 7       type="org.springframework.web.struts.DelegatingActionProxy">
 8       <set-property property="cancellable" value="true"/>
 9       <forward name="success" path="/index.jsp" />
10     </action>

11、 爲了查看錯誤信息,需要在src目錄下添加文件log4j.properties

log4j.rootLogger=WARN,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%t%p[%c]-%m%n

12、 關於事務代理(在applicationContext.xml中配置)
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="false" />只可代理接口(缺省);而<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>則可以代理類。
13、 如果出現java.lang.OutOfMemoryError: PermGen space的提示信息,說明服務器內存不足,需要重啓服務器。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章