aop 注解 开启spring自带的事务

一些基本知识 可以

http://jinnianshilongnian.iteye.com/blog/1415606

serviceImpl.java

 1 package cn.us.service.impl;
 2
 3 import java.util.List;
 4 import java.util.UUID;
 5
 6 import javax.annotation.Resource;
 7
 8 import org.springframework.beans.factory.annotation.Autowired;
 9 import org.springframework.beans.factory.annotation.Qualifier;
10 import org.springframework.stereotype.Service;
11 import org.springframework.transaction.annotation.Propagation;
12 import org.springframework.transaction.annotation.Transactional;
13
14 import cn.us.dao.IUserDao;
15 import cn.us.dao.impl.UserDaoImpl;
16 import cn.us.domain.User;
17 import cn.us.service.IUserService;
18 @Service(value="userService")
19 //@Transactional(propagation=Propagation.SUPPORTS,readOnly=true)
20
21 public class UserServiceImpl implements IUserService {
22
23     //@Resource(name="userDao")
24     @Autowired
25     @Qualifier(value="userDao")
26     private IUserDao userDao;
27
28     public User getOne(String uid) {
29         return userDao.getOne(uid);
30     }
31     //这个方法不需要通知
32 //    @Transactional(propagation = Propagation.NOT_SUPPORTED)
33     public List<User> getAllUsers() {
34         return userDao.getAllUsers();
35     }
36
37     public boolean isExistenceUser(User user) {
38         return userDao.isExistenceUser(user);
39     }
40
41     @Transactional(readOnly = false, propagation=Propagation.REQUIRED)
42     public User addUser(User user) {
43         user.setUid(UUID.randomUUID().toString());
44         userDao.addUser(user);
45         return user;
46     }
47 }

xml配置

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:aop="http://www.springframework.org/schema/aop"
 6     xmlns:tx="http://www.springframework.org/schema/tx"
 7     xsi:schemaLocation="http://www.springframework.org/schema/beans
 8                          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
 9                          http://www.springframework.org/schema/context
10                          http://www.springframework.org/schema/context/spring-context-3.0.xsd
11                          http://www.springframework.org/schema/tx
12                          http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
13                          http://www.springframework.org/schema/aop
14                          http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
15 <!--         注册注解配置 -->
16       <context:annotation-config/>
17      <!--注入 事务管理器  这个注解驱动 告诉 spring 注解驱动 具体上网搜索  -->
18      <tx:annotation-driven  transaction-manager="transactionManager"/>
19
20
21 <!--      扫描注解bean -->
22      <context:component-scan base-package="cn.us.aspect"/>
23
24 <!--      开启切面代理 使得spring认识 @Aspect -->
25      <aop:aspectj-autoproxy/>
26
27      <!-- 事务管理器 -->
28     <bean id="transactionManager"
29         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
30         <property name="dataSource" ref="dataSource" />
31     </bean>
32
33
34     <!-- 数据源 -->
35     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
36         <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
37         <property name="url" value="jdbc:mysql://localhost/usersystem?characterEncoding=utf-8"></property>
38         <property name="username" value="root"></property>
39         <property name="password" value="123456"></property>
40     </bean>
41
42
43     <bean id="sqlsessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" >
44         <property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
45         <property name="dataSource" ref="dataSource"></property>
46     </bean>
47
48 </beans>

aop 注解 开启spring自带的事务

时间: 2024-12-10 17:51:56

aop 注解 开启spring自带的事务的相关文章

@Transactional注解在spring中的应用-事务

@Transactional spring 事务注解 默认遇到throw new RuntimeException("...");会回滚 需要捕获的throw new Exception("...");不会回滚 // 指定回滚 @Transactional(rollbackFor=Exception.class) public void methodName() { // 不会回滚 throw new Exception("..."); } //

配置 Spring 的声明式事务

<!-- 1. 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> <

Spring入门(三)— AOP注解、jdbc模板、事务

一.AOP注解开发 导入jar包 aop联盟包. aspectJ实现包 . spring-aop-xxx.jar . spring-aspect-xxx.jar 导入约束 aop约束 托管扩展类和被扩展类 <!-- 要做AOP, 一定要托管扩展类和被扩展类 --> <bean id="us" class="com.pri.service.impl.UserServiceImpl"></bean> <bean id="

Spring AOP 注解形式

AspectOriented Programing,面向切面编程.   AOP主要用于日志记录,性能统计,安全控制(权限控制),事务处理,异常处理等.将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码.  Spring AOP织入增强(Advice)的方式有两种 如果连接点实现了接口采用jdk自带的动态代理的形式实现织入,如果连接点没有实现接口则采用动态

spring学习5:基于注解实现spring的aop

目录 spring学习5:基于注解实现spring的aop 一.基于注解+xml实现 1.1 在配置文件中开启spring对注解aop的支持 1.2 把通知类用注解配置到容器中,并用注解声明为切面 1.3 定义切入点表达式 1.4 定义通知 二.基于纯注解实现 三.多个aop的执行顺序 1.xml配置 2.注解配置 3.注意 spring学习5:基于注解实现spring的aop 上一节学习了spring aop的基本概念和如何基于xml配置来实现aop功能.这一节来学习下如何用注解实现aop 一

spring中的aop注解(整合junit测试)

使用spring中的aop前先来了解一下spring中aop中的一些名词 Joimpoint(连接点):目标对象中,所有可能增强的方法 PointCut(切入点):目标对象,已经增强的方法 Advice(通知/增强):增强的代码 Target(目标对象):被代理对象 Weaving(织入):将通知应用到切入点的过程 Proxy(代理):将通知织入到目标对象之后,形成代理对象 aspect(切面):切入点+通知 一:不使用spring的aop注解 以javaEE中的service层为例 UserS

基于注解的Spring AOP示例

基于注解的Spring AOP示例 目录 在XML配置文件中开启 @AspectJ 支持 声明切面及切入点 声明通知 测试 结语 在XML配置文件中开启 @AspectJ 支持 要使用Spring的AOP,首先要在 applicationContext.xml 配置文件中添加如下内容: <!-- 启动@Aspectj --> <aop:aspectj-autoproxy/> 声明切面及切入点 在Spring中, 切面 就是使用 @Aspect 注解的类.而 切入点 则由两部分组成:

Spring详解(六)------AOP 注解

上一篇博客我们讲解了 AspectJ 框架如何实现 AOP,然后具体的实现方式我们是通过 xml 来进行配置的.xml 方式思路清晰,便于理解,但是书写过于麻烦.这篇博客我们将用 注解 的方式来进行 AOP 配置. 为了便于大家理解,讲解方式是这样的,我们先给出 xml 的配置,然后介绍如何通过 注解 来进行替代. PS:本篇博客源码下载链接:http://pan.baidu.com/s/1dFdBHZF 密码:3v4k 1.xml 的方式实现 AOP ①.接口 UserService pack

基于注解的Spring AOP的配置和使用--转载

AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程.可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术.AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现. 我们现在做的一些非业务,如:日志.事务.安全等都会写在业务代码中(也即是说,这些非业务类横切于业务类),但这些代码往往是重复,复制--粘贴式的代码会给程序的维护带来不便,AOP