SSH注解配置
来源:互联网 发布:手机淘宝查看申请售后 编辑:程序博客网 时间:2024/06/01 08:10
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
2.文件内部配置
< context:annotation-config /> <!--打开注解模式 -->
< context:component-scan base-package="com.newer" /> <!-- 开启自动扫描Bean,一般配到基础包即可。使用这个可以不配置-打开注解模式 -->
Bean注解管理
spring自动扫描管理Bean注解有四种配置模式,如下
@Service 用于业务层(service) 示例:@Service("baseService")
@Controller 用于控制层(action) 示例:@Controller("baseAction")
@Repository 用于数据访问层(dao) 示例:@Repository("baseDao")
@Component 泛型配置(当组件不确定时用),以上3种配置是基于此扩展
推荐不同分层采用对应的配置,切忌所有配置都使用@Component
Spring事物注解配置
<!-- xml,@事务配置 -->
< bean id="hibernateTransaction" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
< /bean>
< tx:annotation-driven transaction-manager="hibernateTransaction" proxy-target-class="true" />
@Transactional //默认事务配置
@Transactional(rollbackFor=Exception.class) //出现Exception异常也回滚
@Transactional(noRollbackFor=Exception.class) //出现Exception异常不回滚
@Transactional(readOnly=true) //只读,性能优化,效率高
@Transactional(propagation=Propagation.NOT_SUPPORTED) //不开启事务
@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(propagation=Propagation.NESTED)
@Transactional(propagation = Propagation.REQUIRED,readOnly=true) //readOnly=true只读,不能更新,删除
@Transactional(propagation = Propagation.REQUIRED,timeout=30)//设置超时时间
@Transactional(propagation = Propagation.REQUIRED,isolation=Isolation.DEFAULT)//设置数据库隔离级别
注解事物是可以依赖类继承而继承的,例如某个service继承了baseService,那么它也会继承baseService的事物声明
DEFAULT
采用数据库默认隔离级别
READ_UNCOMMITTED
读未提交数据( 会出现脏读,不可重复读,幻读 ,避免了 第一类丢失 更新 )
READ_COMMITTED
读已提交的数据(会出现不可重复读,幻读)
REPEATABLE_READ
可重复读(会出现幻读)
SERIALIZABLE
串行化
Action注解单例问题
交有spring管理后,action默认是单例模式。但是项目不能全部都采用单例,使用我们需要加入相关注解切换为非单例:
在action上面配置,@Scope("prototype") ,每个请求都会new一个新的实例
2. 事务的传播属性
PROPAGATION_NEVER
声明方法绝对不能在事务范围内执行,如果方法在某个事务范围内执行,容器就抛异常.只有没关联到事务,才正常执行.
NESTED
嵌套事务(一般数据库不支持)
REQUIRED
SUPPORTS
支持事务, 存在:加入,不存在:不使用事务
MANDATORY
只能在一个已存在事务中执行,业务方法不能发起自己的事务,如果业务方法在没有事务的环境下调用,就抛异常
REQUIRES_NEW
业务方法总是会为自己发起一个新的事务,如果方法已运行在一个事务中,则原有事务被挂起,新的事务被创建,直到方法结束,新事务才结束,原先的事务才会恢复执行.
NOT_SUPPORTED
声明方法需要事务,如果方法没有关联到一个事务,容器不会为它开启事务.如果方法在一个事务中被调用,该事务会被挂起,在方法调用结束后,原先的事务便会恢复执行.
PROPAGATION_NEVER
声明方法绝对不能在事务范围内执行,如果方法在某个事务范围内执行,容器就抛异常.只有没关联到事务,才正常执行.
Bean初始化执行配置(服务器启动时就执行)
要想在bean初始化的时候就执行某个方法可使用注解@PostConstruct,同样有初始化就有结束@PreDestroy
@PostConstruct
public void init(){
System.out.println("初始化执行方法");
}
@PreDestroy
public void destory(){
System.out.println("关闭资源");
- 注解配置 ssh
- 注解配置 ssh
- SSH注解的配置
- SSH注解配置
- SSH注解配置
- ssh注解配置
- 用注解配置ssh
- 零配置,SSH全注解
- 详解SSH注解配置,bean注解、事物注解等
- SSH框架---注解配置,bean注解、事物注解等
- 详解SSH注解配置,bean注解、事物注解等
- eclipse 配置 SSH 无配置文件 全注解
- java ssh 加注解整合配置
- SSH:Hibernate框架(Hibernate注解配置)
- SSH全注解-annotation详细配置.
- SSH全注解-annotation详细配置
- SSH配置流程 (基于注解方式)
- SSH注解配置中的几种注解模式
- spring 官方下载地址
- linux磁盘读写性能监控
- 深入理解CNN相关细节
- jQuery 中的 39 个技巧【申明:来源于网络】
- 同步电机VF的坐标系和启动过程 以及定转子夹角(需要整理)
- SSH注解配置
- 移动应用实战(移动OA)之七_生成Android手机APP之二
- 如何在局域网访问Tomcat项目
- 用NGUI动态添加和删除Sprite
- Android中shape中的属性大全
- 数字后端之我见
- Android中热修复框架Robust原理解析+并将框架代码从"闭源"变成"开源"(下篇)
- 第一章 Html的基本标签
- SSH框架中action和jsp之间的是如何工作的,深入研究(持续更新中)