==============注册==================http://www.2cto.com/kf/201207/140774.html
标注到类头部,将此类注册到spring来管理创建
@Repository 数据持久层
@Service 业务层Bean
@Controller 表现层Bean
@Component不推荐使用
======其他属性1
<bean name="" class=""
lazy-init=“true” //是否延迟初始化
scope=“prototype” //bean的生命周期
depends-on=“其他bean“ //依赖其他bean
/>
在Spring中也有相应的注解去对应
@Lazy
@Scope
@DependsOn
======其他属性2
<bean name="" class=""
init-method=“init“ //初始化方法
destroy-method=“close“ //析构方法
/>
在Spring中也有相应的Bean去对应,当然,这两个注解是jdk里内置的
@PostConstruct
@PreDestroy
==============注入==================
@Autowired
@@Resource
根据bean 类型从spring 上下文中进行查找
1 它可以放在属性、方法和构造方法头上
2 如果某个接口的实现类在Spring容器中唯一的话,仅使用@Autowired就可以正确注入,如:
@Autowired
private SampleDao dao;
3 如果某个接口的实现类在Spring容器中不唯一
用@Qualifier来指定注入Bean的名字,如
@Autowired
@Qualifier(“sampleDaoImpl”)
private SampleDao dao;
4
@Primary在多个Bean之中指定哪个为最优先者,注意它不是跟@Autowired配合使用,而是跟@Service配合使用,如
@Service @Primary SampleDaoImpl
===================通知====================
Spring使用的AOP注解分为三个层次:
@Aspect放在类头上,把这个类作为一个切面,但是这个类一定要显式的注册在Spring容器中。
@Pointcut放在方法头上,定义一个可被别的方法引用的切入点表达式。
5种通知。 www.2cto.com
@Before,前置通知,放在方法头上。
@After,后置【finally】通知,放在方法头上。
@AfterReturning,后置【try】通知,放在方法头上,使用returning来引用方法返回值。
@AfterThrowing,后置【catch】通知,放在方法头上,使用throwing来引用抛出的异常。
@Around,环绕通知,放在方法头上,这个方法要决定真实的方法是否执行,而且必须有返回值
===================事物传播属性====================
@Transactional
属性 类型 描述
传播性 枚举型 可选的传播设置
Propagation
-------------------------------------------------------------
隔离性 枚举型 可选的隔离级别(默认值:
Isolation ISOLATION_DEFAULT)
-------------------------------------------------------------
只读行 布尔型 读写型事物 vs 只读性事物
--------------------------------------------------------------
超时 int 秒为单位 事物超市设置
---------------------------------------------------------------
回滚异常类(rollbackFor) 一组Class类的 一组异常类,遇到时必须进行回滚。
实例,必须是Throwable 默认情况下checked exceptions不进行
回滚,仅unchecked exceptions即(RuntimeException的子类)
才进行事务回滚。
-----------------------------------------------------------------
回归异常类名 一组Class类的名字, 一组异常类名,遇到时 必须 进行回滚
rollbackForClassname 必须是Throwable的子类
的子类
------------------------------------------------------------------
不回滚异常类 一组Class类的名字,
noRollbackFor 必须是Throwable的子类 一组异常类名,遇到时 必须不 回滚。
------------------------------------------------------------------
不回滚异常类名 一组Class类的名字,
noRollbackForClassname 必须是Throwable的子类 一组异常类,遇到时,必须不回滚
------------------------------------------------------------------
事物
http://blog.csdn.net/zhaofsh/article/details/6285869
事物注解方式: @Transactional
当标于类前时, 标示类中所有方法都进行事物处理
例子:
@Transactional
public class TestServiceBean implements TestService {}
当类中某些方法不需要事物时:
@Transactional
public class TestServiceBean implements TestService {
private TestDao dao;
public void setDao(TestDao dao) {
this.dao = dao;
}
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public List<Object> getAll() {
return null;
}
}
事物传播行为介绍:
@Transactional(propagation=Propagation.REQUIRED)
如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)
@Transactional(propagation=Propagation.NOT_SUPPORTED)
容器不为这个方法开启事务
@Transactional(propagation=Propagation.REQUIRES_NEW)
不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
@Transactional(propagation=Propagation.MANDATORY)
必须在一个已有的事务中执行,否则抛出异常
@Transactional(propagation=Propagation.NEVER)
必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)
@Transactional(propagation=Propagation.SUPPORTS)
如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.
事物超时设置:
@Transactional(timeout=30) //默认是30秒
事务隔离级别:
@Transactional(isolation = Isolation.READ_UNCOMMITTED)
读取未提交数据(会出现脏读, 不可重复读) 基本不使用
@Transactional(isolation = Isolation.READ_COMMITTED)
读取已提交数据(会出现不可重复读和幻读)
@Transactional(isolation = Isolation.REPEATABLE_READ)
可重复读(会出现幻读)
@Transactional(isolation = Isolation.SERIALIZABLE)
串行化
MYSQL: 默认为REPEATABLE_READ级别
SQLSERVER: 默认为READ_COMMITTED
脏读 : 一个事务读取到另一事务未提交的更新数据
不可重复读 : 在同一事务中, 多次读取同一数据返回的结果有所不同, 换句话说,
后续读取可以读到另一事务已提交的更新数据. 相反, "可重复读"在同一事务中多次
读取数据时, 能够保证所读数据一样, 也就是后续读取不能读到另一事务已提交的更新数据
幻读 : 一个事务读到另一个事务已提交的insert数据
相关推荐
使用Spring的注解方式实现AOP的细节
Spring注解
Spring demo 自动检测注解
spring注解笔记spring注解笔记spring注解笔记spring注解笔记
Spring注解注入属性
spring 注解
Spring注解大全,注解整理方式采用思维导图工具(XMind)整理,对注解按自己的方式进行了分类,并对所有的注解在备注中进行了解释说明;
Spring注解描述,底层笔记
要学习hibernate注解和spring注解的,可以下载, 该工程包括了hibernate注解和spring注解做的登录例子
《Spring注解驱动开发》是一套帮助我们深入了解Spring原理机制的教程; 现今SpringBoot、SpringCloud技术非常火热,作为Spring之上的框架,他们大量使用到了Spring的一些底层注解、原理,比如@Conditional、@Import...
Spring注解所依赖的包。com.springSource.javax.annotation
Spring注解驱动开发.pdf
spring 注解 aop demo spring 注解 aop demo spring 注解 aop demo spring 注解 aop demo
注解和注释以及Spring和SpringMVC常用的注解 1.两者区别 注解 :参与代码编译,以@开头的。它是给应用程序看的,单独使用注解毫无意义,一定要跟工具一起使用,这个所谓的工具实际就是能读懂注解的应用程序 注释 :...
spring注解详细
Spring注解驱动开发.xmind
spring 注释详解 适合新手看看 spring 注解信息介绍
spring注解使用 spring注解使用
该文件中包括了dwr框架和spring框架结合使用方法,使用注解方式。
SPring注解及页面跳转实例