- Spring的AOP IOC Spring AOP和IOC的底层实现 使用场景
AOP:面向切面编程,在目标对象周围织入通知。基于动态代理实现,有两种实现方式,一个是JDK动态代理,一个是cglib动态代理。
使用场景:事务管理器,拦截器
IOC:控制反转,就是以前对象需要程序员自己new,现在spring帮我们建立对象并进行管理。
对象通过依赖注入或自动装配来配置,有setter注入,注解注入,构造器注入,工厂注入。自动装配有根据参数名,参数类型,构造器参数类型装配等。
- Spring中的bean对象默认是单例还是非单例?如何配置非单例bean
单例,更换bean的作用域,用prototype,还可以使用request,session,globalsession,后面三个只能在Web中使用。
- spring如何配置事务
1声明式事务
1.1 如果是xml配置
配置核心事务管理器
配置通知
配置将通知织入目标
1.2 如果是注解配置
开启注解管理事务‘
使用注解
2 编码方式实现
- Spring 声明式事务如何实现。
使用AOP,使用一个事务拦截器在方法调用的前后进行事务性增强。
- Spring中的事务管理
事务实现方法(编码式,声明式(注解,xml配置)) 实现原理
事务传播机制(7种,默认是required)
事务隔离级别(5种,默认+4个)
- Spring事务传播机制
spring的事务传播级别有7种,其中最常用的就是默认的required级别。就是如果存在事务,就加入到事务中执行,如果没有,就新建一个事务执行。
- AOP的切点怎么切
使用动态代理
- Spring注解。
注册 @Controller @Service @Component
注入 @Autowired @Resource
请求地址 @RequstMapping
- spring中用到的设计模式
单例模式 spring中的bean对象默认是单例
工厂模式 spring的beanfactory就是工厂模式中的简单工厂模式
代理模式 aop
- Spring特点
轻量级MVC框架
容器 管理对象的配置和生命周期
还有控制反转和面向切面的特性
提供事务管理,异常处理
- spring管理的bean有哪些模式,spring默认的是什么模式
单例模式,多例模式,request,session,global-session(后面三种是在web环境下)
单例模式
- Spring 都有哪几种注入方式(Spring配置bean实例化哪些方式),什么情况下用哪种
setter方法注入
注解注入
构造器注入(要在构造方法里赋值)
工厂注入
- spring的aop原理,类别 区别 常用哪一个
基于动态代理
JDK动态接口代理,cglib动态代理
JDK通过接口来创建代理实例,cglib则是通过继承来创建代理实例。
一般用JDK动态代理
- 拦截器?拦截器用来做什么?哪些场景需要用拦截器?
知道 本质上也是aop
在目标对象周围增强通知
日志记录
性能监控
权限检查 -通过拦截器判断用户是否登录
- spring如何管理bean?
使用applicationContext管理bean
- Spring中bean的生命周期
1 实例化创建对象
2 依赖注入,配置bean
3 中间一堆方法
4 销毁
- BeanFactory和ApplicationContext的关系?
ApplicationContext比BeanFactory功能更完善,增加了aop,事务等功能。