开发环境: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/>
return mapping.findForward( " fail " );
}
需要在struts-config.xml中添加第8行
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




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的提示信息,说明服务器内存不足,需要重启服务器。