1、简要介绍一下SpringIOC
springIOC就是控制反转,他是将创建管理对象的权限交给了spring,通过依赖注入,设置属性。
2、IOC实现原理
IOC底层是通过工厂模式和反射,创建对象。
3、beanfactory和factorybean区别
beanfactory是Spring的核心对象,他就相当于是Spring的容器,factoryBean是配置类的一种方式,例如DataSourceBeanFactory。
4、beanfactory和applicationContext区别
两个都可以被看做是spring的容器,applicationContext是beanfactory的子接口,他实现了更多的功能,例如国际化,统一的资源访问方式,提供在监听器中注册bean的方式,同时加载多个配置文件等。
5、什么是DI
DI是依赖注入,对象类暴露setter方法,让容器在初始化的时候就组装对象的依赖关系。设置值。
6、Spring常用注解
@RequestMapping:定义资源访问路径
@Controller:标记为MVC响应类
@ResponseBody:设置响应格式为json格式
@PostMapping:Restful风格。接收post请求
……
7、SpringAOP是什么
SpringAOP是一种编程思想,他是面向切面编程,可以定义切点,切面,做什么事,与代码解耦,可以通过配置在代码逻辑中插入执行。
8、AOP实现原理
AOP底层是通过代理模式进行实现,代理模式分为两种JDK动态代理和CGLIB动态代理,这两种的区别是JDK
动态代理只提供接口的代理,接口更加解耦。CGLIB提供针对继承类的动态代理。CGLIB代理的类不能使用final修饰。要不然就不能代理。
9、spring使用了哪些设计模式,及使用场景
1、单例模式,springIOC管理的对象都是单例的
2、工厂模式,beanfactory就是工厂模式
3、代理模式,AOP底层采用代理模式
4、观察者模式,如listener的ApplicationListener
5、模板方法,如RestTemplate
10、IOC的优点
1、代码解耦
2、容器管理对象,减少代码
3、易于测试
11、DI的注入方式
接口注入
构造器注入
setter注入
12、spring注入bean的方式
1、set方法注入
2、构造器注入
3、静态工厂注入
4、实例工厂注入
13、怎么定义bean的作用域
使用@Scope注解
14、spring管理的单例bean是线程安全的吗,怎么解决
spring管理的对象不是线程安全的,解决可以通过设置为多例解决。
15、spring的自动装配
spring的自动装配就是指将一个类设置到指定的数据,@autowired就是一种自动装配。
16、Autowired和Resource的区别
autowired是先匹配类型注入,resource是先匹配名字来注入,spring管理的单例类,默认是首字母小写,其他字母不变。
17、AOP的通知类型
前置。后置。异常。返回。环绕。