《Java EE程序设计及实践》全套教学课件.ppt

基于Annotation – 配置切入点 -*- @Aspect public class AspectBean { /** * 使用@Pointcut来配置切入点 */ @Pointcut(execution(* com..*.*Service.*(..))) private void crud(){}; /** * 模拟进行权限检查 */ @Before(crud()) public void checkAuth() { System.out.println(权限检查...); } 省略 } 切入点可以通过@Pointcut进行声明。一个切入点的声明有两部分组成,一个是包含名字和任意参数的签名,另一个是切入点表达式 示例 8.3 Spring事务策略 Java EE应用的事务策略有全局事务和局部事务两种 全局事务通常由应用服务器管理,需要底层应用服务器(例如WebLogic和WebSphere等)的JTA支持,EJB事务就是建立在JTA的基础上,而JTA又必须通过JNDI获取,这就意味着无论用户的应用是跨多个事务性资源(如关系型数据库和消息队列等)的使用还是单一事务性资源的使用,EJB都要求使用全局事务加以处理,这样基于EJB的应用就无法脱离应用服务器的环境 局部事务是基于单一事务性资源的,通常和底层的持久化技术有关,例如,当采用JDBC时,需要使用Connection对象来操作事务,当采用Hibernate持久化技术时,需要使用Session对象操作事务。当使用局部事务时,应用服务器不需要参与事务管理,因此不能保证跨多个事务性资源的事务的正确性,不过绝大部分应用都是基于单一事务性资源的,只有很少的应用需要使用多事务性资源的JTA事务 -*- XML配置声明式事务 – 数据源 -*- !-- 数据源的配置 -- bean id=dataSource class=mons.dbcp.BasicDataSource“ !-- 指定连接数据库的驱动 -- property name=driverClassName value=com.mysql.jdbc.Driver / !-- 指定连接数据库的URL -- property name=url value=jdbc:mysql://localhost:3306/test / !-- 指定连接数据库的用户名 -- property name=username value=root / !-- 指定连接数据库的密码-- property name=password value=root / !-- 指定连接数据库的连接池的初始化大小-- property name=initialSize value=5 / !-- 指定连接数据库的连接池最大连接数-- property name=maxActive value=100 / !-- 指定连接数据库的连接池最大空闲时间-- property name=maxIdle value=30 / !-- 指定连接数据库的连接池最大等待时间-- property name=maxWait value=1000 / /bean XML配置声明式事务 – 事务增强 -*- !-- 事务管理器的配置 -- bean id=txManager“ class=org.springframework.jdbc.datasource.DataSourceTransactionManager property name=dataSource ref=dataSource / /bean !-- 事务增强配置 -- tx:advice id=txAdvice transaction-manager=txManager !-- 事务属性定义 -- tx:attributes tx:method name=get* read-only=true / tx:method name=add* rollback-for=Exception / tx:method name=update* / tx:method name=del* / /tx:attributes /tx:advice XML配置声明式事务 – 事务切面 -*- !-- 通过AOP配置事务增强切面 -- aop:config aop:pointcut expression=execution(* com..*.*Service.*(..)) id=allMethods / aop:advisor advice-ref=txAdvice pointcut-ref=allMethods / /aop

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档