啥是那个spring----spring框架介绍(二)

7.谈谈spring的事务管理

spring提供的事务管理可以分为两类:编程式的和声明式的。

编程式的,比较灵活,但是代码量大,存在重复的代码比较多;
声明式的比编程式的更灵活。

编程式
主要使用transactionTemplate。省略了部分的提交,回滚,一系列的事务对象定义,需注入事务管理对象.

声明式
使用TransactionProxyFactoryBean:PROPAGATION_REQUIRED ,readOnly
围绕Poxy的动态代理 能够自动的提交和回滚事务

8.简单说一下spring框架中bean的生命周期和作用域

1)生命周期

在配置 元素,通过 init-method 指定Bean的初始化方法,
通过 destroy-method 指定Bean销毁方法

<bean id="lifeCycleBean" class="cn.itcast.spring.d_lifecycle.LifeCycleBean" init-method="setup" destroy-method="teardown"></bean> 

需要注意的问题:
destroy-method只对scope="singleton"有效
销毁方法,必须关闭ApplicationContext对象(手动调用),才会被调用

2)作用域

scope属性:指对象的作用范围
singleton
默认值,单例的,立即加载
prototype
多利的,延迟加载
request
WEB项目中,Spring创建一个Bean的对象,将对象存到request域中
session
WEB项目中,Spring创建一个Bean的对象,将对象存入到session域中
global session
WEB项目中,应用在Portlet环境,如果没有Portlet 环境那么globalSession相当于session

取值为singleton时
实例化个数:1个
实例化时机
当Spring核心文件被加载时,实例化配置的Bean实例
生命周期
当使用对象时,创建新的对象实例
只要容器在,就一直活着
当应用卸载,销毁容器时,对象被销毁

取值为prototype时
实例化个数:多个
Bean的实例化时机
当调用getBean()方法时实例化Bean
生命周期
当使用对象时,创建新的对象实例
只要对象在使用中,就一直活着
当对象长时间不用时,被Java的垃圾回收器回收了

9. AOP是什么?

AOP(Aspect-Oriented Programming): 面向切面编程

代理的两种方式:

静态代理:
针对每个具体类分别编写代理类;
针对一个接口编写一个代理类;

动态代理:
针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类

AOP的主要原理:动态代理实现:有两种:JDK ProxyCglib,Spring规定对于有接口的类用JDK Proxy对于无接口和抽象类用Cglib虽然Cglib均可以代理,但是Cglib复杂,效率低。但是Cglib有例外,就是代理的类中不能是final修饰的类或者类中有final方法

主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。

10.AOP和OOP的区别

面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术[1]发展到一定阶段后的产物。面向对象是以功能来划分问题,而不是步骤。

面向过程是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

例子:围棋
面向对象:1.黑白双方,这两个的行为是一模一样的2.棋盘系统,负责绘制画面3.规则系统,负责判断输赢

面向过程:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值