阿里面试第三弹

108 阅读1分钟

Spring框架

1.基于xml配置的springbean,如果要使用@Autowired注解,需要在xml配置中写上什么标签?

context:annotation-config/或②context:component-scan/

2.如何用代码(实现什么接口)向IOC容器中注册Spring bean?

BeanDefinitionRegistryPostProcessor

3.Spring支持几种bean的作用域?

①singleton : bean在每个Spring ioc容器中只有一个实例

②prototype:一个bean的定义可以有多个实例。

③request:每次http请求都会创建一个bean.

④session:在一个HTTP Session中,一个bean定义对应—个实例

4.Spring Bean的生命周期?

①实例化Bean对象

②设置对象属性

③检查是否实现Aware相关接口,并设置相关依赖

④执行BeanPostProcessor前置处理

⑤检查是否是InitializingBeanl以决定是否调用afterPropertiesSet方法

⑥检查是否配置有自定义的init-method方法

⑦执行BeanPostProcessor后置处理

⑧注册必要的Destruction相关回调接口

⑨(等待大家补充)

⑩是否实现DisposableBean接口,如果有,则执行相应的方法

⑩是否配置有自定义的destroy方法,如果有则执行销毁

5.如何强制使用CGLIB实现AOP?

①添加cglib库,如果是基于xml配置spring,在spring配置文件中加入<aop:aspectj-autoproxy proxy-target-class="true"/>;

②如果是基于Springboot,则使用EnableAspectJAutoProxy(ProxyTargetClass=true)

6.用什么注解能控制Spring中2个bean的初始化顺序?

①@DependOn; @Order

7.Spring Boot自动配置原理?

SpringBoot自动配置最主要的注解就是@enableAutoConfiguration,这个注解会导入一个EnableAutoConfigurationlmportSelector的类,而这个类会去读取类路径下所有jar包里META-INF/spring.factories 下key为EnableAutoConfiguration的对应值,找到相应得配置类,然后执行相应配置

来康康面试题⑧

阿里巴巴2017实习生笔试题(二) | 智一面

006APoFYly1g5ra1y6277g307u07u4b5.gif