框架通关整理2-Spring面试整理(IOC、AOP、事务、常用注解)

java通关整理汇总-Java基础、计算机网络、数据库、设计模式、框架、算法模板、笔试


Spring

什么是Spring?

Spring 是个java企业级应用的开源开发框架,是针对bean的生命周期进行管理的轻量级容器。
Spring是为了解决企业应用程序开发复杂性而创建的。Spring既是一个AOP框架,也是一IOC容器。

轻量: Spring 是轻量的,基本的版本大约2MB。
IOC: Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
AOP: Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
容器: Spring 包含并管理应用中对象的生命周期和配置。
MVC框架: Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
事务管理: Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
异常处理: Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。

AOP和IOC的概念
IOC

控制反转
简单说一下,IOC就是其实就是依赖注入,即用接口编程,在程序中不出现new关键字而是用接口来命名引用然后通过某种方式把接口的某个实现类的实例注入到引用里,从而实现接口与具体实现类的松耦合。 由容器控制程序之间的关系(通过XML配置),而非传统实现中的由程序代码直接操控,(在一个Class对象中引用另一个Class对象时,我们通常都是直接通过new contructor)。控制权由应用代码中转到了外部容器,控制权的转移,是所谓的反转。

AOP

面向切面的编程
AOP方式很类似filter,就是在程序正常的业务流中间像切面一样插入很多其他需要执行的代码,比如登录时候,在进入登录页面前写入日志,很常用的,尤其是跟数据库有关的,或者跟支付有关的程序肯定会在每一步前面插入日志。面向切面的编程,即 AOP,是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是切面,它将那些影响多个类的行为封装到可重用的模块中。
AOP Advice(AOP通知)分为: 前置通知 后置通知 异常通知 环绕通知

IOC(依赖注入)方式
  • 构造器依赖注入: 构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。
  • Setter方法注入: Setter方法注入是容器通过调用无参构造器或无参static工厂 方法实例化bean之后,调用该bean的setter方法,即实现了基于setter的依赖注入。
Spring 的事物有几种方式? 区别是什么?
  • 声明式事务 :在配置文件中配置
    使用spring声明式事务,spring使用AOP来支持声明式事务,会根据事务属性,自动在方法调用之前决定是否开启一个事务,并在方法执行之后决定事务提交或回滚事务。 做法是在a方法外围添加注解或者直接在配置文件中定义,a方法需要事务处理,在spring中会通过配置文件在a方法前后拦截,并添加事务

  • 编程式事务: 在代码中硬编码
    编程式事务需要你在代码中直接加入处理事 务的逻辑,可能需要在代码中显式调用beginTransaction()、commit()、rollback()等事务管理相关的方法,如在执行a方 法时候需要事务处理,你需要在a方法开始时候开启事务,处理完后。在方法结束时候,关闭事务

常用的注解

@Component
将一个Java类注入到Spring框架中,说明这是spring的一个组件
@Controller
@ Service
@ Repository

@Autowired注解
完成自动装配的工作,Spring通过@Autowired注解实现Bean之间的依赖关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值