Spring

2018-07-02  本文已影响2人  汤圆叔

什么是 IOC ,了解 Spring IOC 的原理吗?

IOC/DI:控制反转,本质是将原来程序中对象创建、依赖的代码,反转交由容器去协助实现以达到统一管理对象的目的。
Spring中的IOC容器主要作用是完成对象创建、依赖管理等。

Spring IOC 原理: BeanFactory 根据配置Bean的具体 Class 通过反射调用其构造函数(默认调用无参构造函数)创建对象,
注入依赖时通过注解 @Resources(名称匹配)和@Autowired(类型匹配) 查找对应Bean,然后通过 setter 或 构造函数 方式注入。

什么是AOP,了解 Spring AOP 的原理吗?

切面编程(AOP)是通过切面非侵入式的操作程序方法,常用的场景如日志记录、权限判断、读写分离等。

Spring AOP 原理:基于动态代理技术实现,通过ProxyBeanFactory将Bean替换为其代理Bean,然后将实现MethodInterceptor接口的拦截器链注入到代理Bean中,完成方法调用拦截。

Spring支持的事务管理类型有哪些?你在项目中使用哪种方式?

Spring支持编程式事务、声明式事务管理。二者的特点是编程式事务允许通过代码控制业务、使用灵活;声明式事务配置简单、使用方便,所以在项目中更常用。
事务分为全局事务、局部事务。全局事务需要JTA支持,由于成本高、使用复杂,所以一般不在项目中使用。局部事务和底层采用的持久化方案有关,例如Mybatis通过JDBC的Connetion对象来操作事务;而Hibernate通过Session对象来操作事务。目前Spring提供了如下所示的事务管理器:

Spring MVC的工作原理是怎样的?

Spring MVC

Spring MVC与Struts的区别?你会选哪个?

你如何理解AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念?

Spring事务的传播特性了解吗?你们是如何使用的?

因为涉及到跨库操作,目前业务操作都采用的是 PROPAGATION_REQUIRES_NEW(新建事务,现有事务挂起),各Service方法事务、Connection 独立,互不影响。
在 spring的 TransactionDefinition接口中一共定义了六种事务传播属性:

前六个策略类似于EJB CMT,第七个(PROPAGATION_NESTED)是Spring所提供的一个特殊变量。它要求事务管理器或者使用JDBC 3.0 Savepoint API提供嵌套事务行为(如Spring的DataSourceTransactionManager)

阐述Spring框架中Bean的生命周期?

Bean加载详细过程

Spring 读写分离你们怎么实现的?如果写操作内部调用了读操作如何保证读写分离?

上一篇下一篇

猜你喜欢

热点阅读