常见高级技术面试题
一、 Spring
1. Spring框架优点?
答:方便解耦,简化开发,方便程序的测试,声明事物的支持,AOP编程的支持,方便集成各种优秀框架,降低Java EE API的使用难度,独立于各种应用服务器,
基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承,Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间的解耦,
Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用,Spring的ORM和DAO提供了与第三方持久层框架的良好整合,
并简化了底层的数据库访问,Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。
2. 谈谈你对spring IOC和DI的理解,它们有什么区别?
答:IOC控制反转,DI依赖注入。
IOC是一种编程思想,是一种概念,它可以控制不同的类对象去工作。
依赖注入就是打补丁一样,在你在做这个项目的时候需要用到别的技术,就可以用依赖注入来解决这个问题。
3. spring配置bean实例化有哪些方式?
答:setter 方法,构造函数,静态工厂,实例工厂
4. 请介绍一下Spring框架中Bean的生命周期和作用域
答:单例管理的对象:当scope=”singleton”,即默认情况下会在启动容器时(实例化容器时)实例化,我们也可以指定Bean节点的lazy-init=true 延迟初始化bean,
这时只有在第一次获取bean时才会初始化bean。当然也可以设置全局,非单列管理的对象:scope=prototype ,容器也会延时初始化bean,在第一次请求改bean时才初始化,
因为是非单列的,Spring一旦把对象交给你就不会在帮你管理这个对象了。
5. Bean注入属性有哪几种方式?
答:@Controller:表明这是一个后台控制类,@Service,表明业务层。
@Autowired写在属性上,Ra....Maping写在方法上,@P...tory,规定范围,@Resourcesetter注入
构造方法注入
6. @Autowired和@Resource之间的区别
答:@Autowired注解属于Spring 默认按类型装配,默认情况下必须要求依赖对象必须存在,如果想允许null值 @Autowired(required=false),如果我们想使用名称进行装配
@Autowired()@Qualifier("baseDao")
@R