1. Spring工作机制及为什么要用?
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。Spring既是一个AOP框架,也是一IOC容器。
SpringFramework的组成:Spring AOP,Spring DAO,Spring ORM,Spring Web,Spring Context, Spring Web MVC。
Spring的核心就是IOC和AOP,所以Spring的工作机制简单的理解也就是IOC和AOP的工作机制。
借助于Spring AOP,Spring IoC能够很方便的使用到非常健壮、灵活的企业级服务,通过使用IoC能够降低组件之间的耦合度,最终,能够提高类的重用性,利于测试,而且更利于整个产品或系统集成和配置。
2. 说说AOP和IOC的概念以及在spring中是如何应用的?
AOP,Aspect Oriented Program,面向(方面)切面的编程;
IOC,Invert Of Control,控制反转。
简单说一下,IOC就是其实就是依赖注入,即用接口编程,在程序中不出现new关键字,而是用接口来命名引用,然后通过某种方式把接口的某个实现类的实例注入到引用里,从而实现接口与具体实现类的松耦合。
由容器控制程序之间的关系(通过XML配置),而非传统实现中的由程序代码直接操控,(在一个Class对象中引用另一个Class对象时,我们通常都是直接通过new contructor)。控制权由应用代码中转到了外部容器,控制权的转移,是所谓的反转。
AOP方式很类似filter,就是在程序正常的业务流中间像切面一样插入很多其他需要执行的代码,比如登录时候,在进入登录页面前写入日志,很常用的,尤其是跟数据库有关的,或者跟支付有关的程序肯定会在每一步前面插入日志。
面向方面的编程,即 AOP,是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。
AOP Advice(AOP通知)分为:
前置通知
后置通知
异常通知
环绕通知
3. Spring的事物有几种方式?谈谈spring事物的隔离级别和传播行为?
声明式事务 使用spring声明式事务,spring使用AOP来支持声明式事务,会根据事务属性,自动在方法调用之前决定是否开启一个事务,并在方法执行之后决定事务提交或回滚事务。
事务的隔离级别:
数据库系统提供了4种事务隔离级别,在这4种隔离级别中,Serializable的隔离级别最高,Read Uncommitted的隔离级别最低;
· Read Uncommitted 读未提交数据;(会出现脏读)
· Read Committed 读已提交数据;
· Repeatable Read 可重复读;
· Serializable 串行化
事务的传播属性包括:
· Required 业务方法需要在一个事务中运行,如果一个方法运行时已经处在一个事务中,那么加入到该事务,否则为自己创建一个新事务,80%的方法用到该传播属性;
· Not-Supported
· Requiresnew
· Mandatoky
· Supports
· Never
· Nested
4. Spring的优点和缺点?
⑴Spring的优点:
① Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB;
② Spring能消除在许多工程中常见的对Singleton的过多使用。(因为它降低了系统的可测试性和面向对象的程度);
③ 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。Inversion of Control的使用帮助完成了这种简化;
④ 通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯;
⑤ Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring;
⑥ 使用Spring构建的应用程序易于单元测试;
⑦ Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码;
⑧ Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,他们适用于许多web应用。例如:Spring能使用AOP提供声明性事务管理而不通过EJB容器;
⑨ Spring为数据存取提供了一个一致的框架不论使用的是JDBC还是O/R mapping产品;
⑵Spring的缺点:
① 使用人数不多,jsp中要写很多代码;
② 控制器过于灵活,缺少一个公用控制器。
- 浏览: 154534 次
- 性别:
- 来自: 湖南长沙
最新评论
-
sky_lc:
我这里为啥部署上之后啥反映也没有啊~~新手,对这个不太懂,没有 ...
关于Spirng Quartz定时触发器+源码示例! -
springdata-jpa:
java quartz定时任务demo教程源代码下载,地址:h ...
关于Spirng Quartz定时触发器+源码示例! -
yahier:
还是挺好的,就是简单触发器不起效
关于Spirng Quartz定时触发器+源码示例! -
全保生:
很好,简单易懂。
关于Spirng Quartz定时触发器+源码示例! -
mljny:
菜鸟路过,保留备用。
史上最全!最经典!最无私的Android资料(书籍+代码)分享!
一些关于Spring的知识
- 博客分类:
- SSH
相关推荐
Spring文档,包括spring知识点总结,对初学者学习spring却有帮助
Spring : 春天 —>给软件行业带来了春天 2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。 2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。 很难想象Rod ...
spring一些常用知识点spring一些常用知识点 spring一些常用知识点 spring一些常用知识点spring一些常用知识点spring一些常用知识点
spring从搭建配置到简单开发的一个整体流程,比较适合打基础的朋友!
spring阶段知识点总结
spring的知识整理和框架的结合开发。 IOC 控制反转(Inversion of Control)、 依赖注入(Dependency Injection)等基础知识的详细讲解。
纯文档的spring 知识点讲解,快速学会spring 原理讲解,配置讲解,具体实现讲解,出错排除讲解。
关于Spring Cloud知识点而整理出的思维导图,可以快速了解其使用方式,其中包括服务管理、消息代理、网关等知识点
学习spring时的知识点练习代码,有说明,欢迎下载
1、为什么要使用Spring? 2、Bean 3、Spring事务 4、基本框架 5、面向切面编程 6、为Spring添加REST功能 7、spring计划任务 8、spel 9、面试
Spring基础知识汇总 Java开发必看
SpringCloud系列Demo代码,每个子项目都是SpringCloud的一个知识点或者说技能点且都有对应的博客介绍,代码开箱即用适合新手学习或老司机复习。 SpringCloud系列Demo代码,每个子项目都是SpringCloud的一个知识点...
spring AOP 理论知识点总结.wpsspring AOP 理论知识点总结.wpsspring AOP 理论知识点总结.wps
springcloud汇总知识点,从零到精通springcloud汇总知识点,从零到精通springcloud汇总知识点,从零到精通springcloud汇总知识点,从零到精通springcloud汇总知识点,从零到精通springcloud汇总知识点,从零到精通...
关于spring的基本知识,高手就免看了.
spring知识文档,内有详细的spring介绍以及扩展
以思维导图的形式对Spring的基础理论知识进行一个汇总,思维导图中包含Spring简介、背景、特征、特点、优点、缺点及其Spring版本迭代做了详细介绍。
Spring基础知识汇总Java开发必看
三十五个常见的Spring Boot知识点.pdf三十五个常见的Spring Boot知识点.pdf三十五个常见的Spring Boot知识点.pdf三十五个常见的Spring Boot知识点.pdf三十五个常见的Spring Boot知识点.pdf三十五个常见的Spring Boot...
三十五个常见的Spring Boot知识点.docx三十五个常见的Spring Boot知识点.docx三十五个常见的Spring Boot知识点.docx三十五个常见的Spring Boot知识点.docx三十五个常见的Spring Boot知识点.docx三十五个常见的Spring...