标签:execution user 业务 好的 工作 预编译 程序设计 控制 框架
一、原理
1、spring的核心机制是IOC(反转控制、依赖注入)和AOP(面向切面编程)。
注1:spring是一站式的框架,对EE的三层有每一层的解决方案,Web层,业务层,数据访问层.Web层:SpringMVC , 持久层:JDBC Template , 业务层 : Spring的Bean管理。 IOC思想 : 工厂+反射+配置文件,底层原理就是提供一个工厂Bean,然后提供一个配置文件,把一些类全都配置在配置文件中,通过xml解析获得类的全路径,从而反射获得类的实例。
注2:AOP就是面向切面编程,通过预编译的方式和运行期动态代理实现程序功能的统一维护的技术。主要的功能是 : 日志记录,性能统计,安全控制,事务处理,异常处理等。
2、概念:
(1)当摸个角色需要另一个角色协助的时候,传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring中穿件被调用者的实例不在由被调用者来完成,因此称为控制反转。创建被调用者的工作由Spring来完成,然后注入调用者,因此也称为依赖注入。(特征:降低了组建的耦合性)
(2)面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。(特征:各步骤之间良好的隔离型,源代码无关性)
二、事务
1、事务
事务:是逻辑上的一组操作,要么全部成功,要么全部失败
事务的特性 :
2、spring中的事务管理
分层开发: 事务处于service层
Spring的事务管理分成两类:
spring中的注解:
这里讲下声明事务管理的操作:配置XML文件,(包括事务管理,连接池的配置) ---> 在需要使用注解的方法前边加上注解@Transactional
1 <!-- 引入外部属性文件. --> 2 <context:property-placeholder location="classpath:jdbc.properties"/> 3 4 <!-- 配置c3p0连接池 --> 5 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 6 <property name="driverClass" value="${jdbc.driver}"/> 7 <property name="jdbcUrl" value="${jdbc.url}"/> 8 <property name="user" value="${jdbc.user}"/> 9 <property name="password" value="${jdbc.password}"/> 10 </bean> 11 12 <!-- 业务层类 --> 13 <bean id="accountService" class="cn.itcast.spring3.demo4.AccountServiceImpl"> 14 <!-- 在业务层注入Dao --> 15 <property name="accountDao" ref="accountDao"/> 16 </bean> 17 18 <!-- 持久层类 --> 19 <bean id="accountDao" class="cn.itcast.spring3.demo4.AccountDaoImpl"> 20 <!-- 注入连接池的对象,通过连接池对象创建模板. --> 21 <property name="dataSource" ref="dataSource"/> 22 </bean> 23 24 <!-- 事务管理器 --> 25 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 26 <property name="dataSource" ref="dataSource"/> 27 </bean> 28 29 <!-- 开启注解的事务管理 --> 30 <tx:annotation-driven/>
标签:execution user 业务 好的 工作 预编译 程序设计 控制 框架
原文地址:http://www.cnblogs.com/george93/p/6437140.html