阿里面试第三弹

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实习生笔试题(二) | 智一面


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容