Java面试题之框架一

1.不同版本的Spring有哪些主要功能?

版本 特征
Spring2.5 发布于2007年,这是第一个支持注解的版本
Spring3.0 发布于2009年,完全利用了Java5中的改进,并为JEE6提供了改进
Spring4.0 发布于2013年,这是第一个完全支持JAVA8的版本

2.什么是Spring?

Spring是一个Java企业级应用的开源开发框架,旨在降低应用程序开发的复杂度,它是轻量级的,松散耦合的,它具有分层体系结构,允许用户选择组件,还可以集成其他框架,所以又被称为框架的框架

3.列举Spring的优点?

轻量:Spring是轻量的,基本的版本大约2M

控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或者查找依赖的对象们

面向切面的编程:Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开

容器:Spring包含并管理应用中对象的生命周期和配置

MVC框架:Spring的WEB框架是个精心设计的框架,是WEB框架的一个很好的替代品

事务管理:Spring提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务

异常处理:Spring提供方便的API把具体技术相关的异常转化为一致的unchecked异常

扫描二维码关注公众号,回复: 5644629 查看本文章

4.Spring IOC/DI是什么?什么是Spring 容器?IOC的优缺点?

参考文章:

               Spring IOC/DI介绍

5.Spring IOC的实现机制

Spring IOC的实现机制就是工厂模式加反射机制

代码示例:

interface Fruit {
    public abstract void eat();
}
class Apple implements Fruit {
   public void eat(){
       System.out.println("Apple");
   }
}
class Orange implements Fruit {
   public void eat(){
       System.out.println("Orange");
   }
}
class Factory {
   public static Fruit getInstance(String ClassName) {
       Fruit f=null;
       try {
           f=(Fruit)Class.forName(ClassName).newInstance();
       } catch (Exception e) {
           e.printStackTrace();
       }
       return f;
   }
}
class Client {
   public static void main(String[] a) {
       Fruit f=Factory.getInstance("io.github.dunwu.spring.Apple");
       if(f!=null){
           f.eat();
       }
   }
}

6.Spring中依赖注入的方式

在Spring中最常见的依赖注入方式有三种:

构造函数注入

Setter注入

接口注入

参考文章:

                     Spring常用的三种依赖注入方式

7.区分构造函数注入和Setter注入

构造函数注入 Setter注入
没有部分注入 有部分注入
不会覆盖Setter属性 会覆盖Setter属性
任意修改都会创建一个新实例 任意修改不会创建一个新实例
适用于设置很多属性 适用于设置很少属性

8.区分BeanFactory和ApplicationContext

参考文章:

                       Spring系列之BeanFactory和ApplicationContext

猜你喜欢

转载自blog.csdn.net/ys_230014/article/details/88075926
今日推荐