Spring面试题
- 1、什么是Spring?
- 2、你们项目中为什么使用Spring框架?
- 3、@Resource和@Autowired的区别?
- 4、依赖注入的方式有几种?
- 5、说一下你对Spring的核心模块的理解?
- 6、谈谈你对Spring的AOP的理解?
- 7、Spring的AOP和aspectj AOP的区别?
- 8、说说你对Spring的IOC的理解?
- 9、说说你对Spring的理解?
- 10、你觉得Spring的核心是什么?
- 11、说一下使用Spring的优势?
- 12、说说你对AOP的理解?
- 13、如何实现一个IOC容器?
- 14、说说你对IOC的理解?
- 15、BeanFactory和ApplicationContext有什么区别?
- 16、Spring是如何简化开发的?
- 17、简述Spring Bean生命周期?
- 18、什么是bean自动装配,它有哪些方式?
- 19、Spring事务的实现原理是什么?
- 20、Spring事务什么时候会失效?
- 21、Spring事务的隔离级别有哪些?
- 22、Spring框架中使用了哪些设计模式及应用场景?
- 23、Spring的事务传播机制是什么?
- 24、Spring框架中单例bean是线程安全的吗?
- 25、Spring支持的bean作用域有哪些?
- 26、谈谈Spring IOC的理解、原理与实现?
- 27、谈一下Spring IOC的底层实现?
- 28、描述一下bean的生命周期?
- 29、Spring是如何解决循环依赖的问题的?
- 30、缓存的放置时间和删除时间?
- 31、Bean Factory与FactoryBean有什么区别?
- 32、Spring中用到的设计模式?
- 33、Spring的AOP的底层实现原理?
- 34、Spring的事务是如何回滚的?
- 35、谈一下Spring的事务传播?
1、什么是Spring?
Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。
2、你们项目中为什么使用Spring框架?
这么问的话,就直接说Spring框架的好处就可以了。比如说Spring有以下特点:
- 轻量: Spring是轻量的,基本的版本大约2MB。
- 控制反转: Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
- 面向切面的编程(AOP): Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
- 容器: Spring包含并管理应用中对象的生命周期和配置。
- MVC框架: Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
- 事务管理: Spring提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务 (JTA)。
- 异常处理: Spring提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为致的unchecked异常。
3、@Resource和@Autowired的区别?
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持注解的注入。
- 共同点
- 两者都可以写在字段和setter方法上,两者如果都写在字段上,那么就不需要再写setter方法。
- 不同点
- @Autowired
- @Resource