spring面试题整理
什么是spring?
spring是一个轻量级java开源框架,就是用来解决企业级应用开发的复杂性,简化java开发。
spring框架的核心?
IOC容器何AOP模块,通过IOC容器来管理POJO对象以及他们之间的耦合关系,通过AOP以动态非侵入的方式增强服务。
spring的优缺点?
- 方便解耦,简化开发
- AOP编程的支持
- 声明事物的支持
- 方便程序的测试
- 方便集合各种框架
- 降低JAVA EE API使用难度
缺点:
- 依赖反射,反射影响性能
spring模块组成?
- spring core:框架的基本组成,有控制反转IOC,依赖注入的功能
- spring beans: 提供了BeanFactory,工厂模式经典实现,管理对象称为bean
- spring context: 提供框架式的对象访问方法。
- spring jdbc: 简化JDBC
- spring aop: 实现自定义拦截,切点等
- spring web: 提供web开发集成特性,如文件上传
- spring test: 测试
spring用到的设计模式?
- 工厂模式
- 单例模式
- 代理模式
- 模板方法
- 观察者模式
spring中bean是线程安全的吗?
不安全。
解决方法就是改变bean作用域,把“singleton”改成“prototype”,这样相当于new bean()
处理spring线程并发问题?
ThreadLocal提供了线程安全共享对象,把不安全变量封装到ThreadLocal