spring 注解用法搜集
来源:互联网 发布:北京云杉网络 编辑:程序博客网 时间:2024/05/22 06:47
标注到类头部,将此类注册到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 注解用法搜集
- spring 注解用法搜集
- spring 注解用法搜集
- Spring注解用法
- spring 注解用法收集
- Spring Cache 注解用法
- Spring @ModelAttribute注解用法
- Spring注解的基础用法
- spring mvc session注解用法
- spring的@Transactional注解用法
- Spring中@Autowired注解用法
- Spring @Value注解的用法
- Spring自动装配的注解用法
- 转: spring mvc session注解用法
- spring, mybatis集成中的注解用法
- Spring @value注解的错误用法
- Spring 缓存注解@Cacheable的用法
- spring boot中的@RequestMapping注解的用法
- POJ 3264Balanced Lineup
- 锚点、侧栏滑动出现
- 回归分析
- UVA 10110-Light, more light
- 20160717 代码块/静态/工具类设计思想/制作文档/单列设计模式
- spring 注解用法搜集
- Android官方开发文档Training系列课程中文版:创建自定义View之View的优化
- HTTP状态码详介
- iOS 开发中的 Self-Manager 模式
- python3的列表、元组、集合、字典操作
- Hibernate学习笔记----session缓存
- 图片轮播
- POJ 2533Longest Ordered Subsequence
- Tarjan算法求无向图割边割点、最近公共祖先的总结