Spring 开源框架介绍
来源:互联网 发布:linux中文目录改成英文 编辑:程序博客网 时间:2024/06/05 12:47
1. Spring IOC/DI(控制逆转/依赖注入)
当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被 调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。
1.1Setter 注入
以JdbcTemplate(继承JdbcAccessor类) 类为例,属性dataSource可以通过配置文件注入,而dataSource的值可以依据现场环境配置。
1.2 构造函数注入
通过构造函数注入springObj
2.Spring 事物管理
2.1 事物介绍
原子性:一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做,要么全部做。
一致性:数据不会因为事务的执行而遭到破坏。
隔离性:一个事务的执行,不受其他事务(进程)的干扰。既并发执行的个事务之间互不干扰。
持久性:一个事务一旦提交,它对数据库的改变将是永久的。
1.编码方式
2.声明式事务管理方式
基于AOP技术实现的声明式事务管理,实质就是:在方法执行前后进行拦截,然后在目标方法开始之前创建并加入事务,执行完目标方法后根据执行情况提交或回滚事务2.2事物配置
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><!-- 依赖注入上面定义的sessionFactory --><property name="sessionFactory" ref="sessionFactory" /></bean> <!--定义Spring的事务拦截器TransactionInterceptor --><bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"><!-- 依赖注入上面定义的事务管理器transactionManager --><property name="transactionManager" ref="transactionManager" /><!-- 定义需要进行事务拦截的方法及所采用的事务控制类型 --><property name="transactionAttributes"><props><!-- 以browse、list、load、get及is开头的所有方法采用只读型事务控制类型 --><prop key="browse*">PROPAGATION_REQUIRED,readOnly</prop><prop key="list*">PROPAGATION_REQUIRED,readOnly</prop><prop key="load*">PROPAGATION_REQUIRED,readOnly</prop><prop key="get*">PROPAGATION_REQUIRED,readOnly</prop><prop key="is*">PROPAGATION_REQUIRED,readOnly</prop><!-- 所有方法均进行事务控制,如果当前没有事务,则新建一个事务 --><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean>
Spring中常用事务类型:
PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED--如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。
<propkey="insert*">PROPAGATION_REQUIRED,-MyCheckedException</prop>
-前缀强制回滚,+前缀指定提交(这允许即使抛出unchecked异常时也可以提交事务)
Spring 事物主要实现PlatformTransactionManager 接口三个方法:
getTransaction() 获取一个事物
commit() 提交事物
rollback() 回滚事物
3 Spring 中的Bean
3.1 Spring中自带的javabean
3.2 Spring 中使用Java bean
Spring 加载JavaBean
WebApplicationContext,这是一个通过Web方式配置ApplicationContext,它适合于Web系统。
ClassPathXMLApplicationContext,可以通过它配置一个XMLApplicationContext,这个时候XML文件应该放到类路径下面。
FileSystemXmlApplicationContext,可以通过它配置XMLApplicationContext,它是将XML文件存放到文件系统目录下面。
- Spring 开源框架介绍
- Spring框架介绍
- spring的框架介绍
- spring 框架介绍
- spring框架介绍
- spring MVC框架介绍
- Spring Batch框架介绍
- Spring Integration框架介绍
- 2.Spring框架介绍
- Spring框架介绍
- 【spring框架】AOP介绍
- Spring - 框架介绍
- Spring框架介绍
- Spring框架介绍
- Spring MVC框架介绍
- Spring框架介绍
- Spring MVC - 框架介绍
- Spring框架入门介绍
- Codeforces Round #172 (280A) - Rectangle Puzzle
- ASP.NET后台中调用前台Javascript函数的几种方法
- 我倒是可以帮你查一下这个人的底细哦,不过……
- 每天四个linux命令(步骤二)
- 解决MyEclipse启动服务器控制台信息中文乱码问题
- Spring 开源框架介绍
- Android中sqlite数据库应用
- 从优化到再优化,最长公共子串
- JSTL获取list的大小
- LINUX串口共享
- sgu 552 Database Optimization
- C#实现单向链表
- udev的自定义规则
- 使用udev修改u盘设备文件名