您现在的位置:首页 >> 前端 >> 内容

前端面试题分享之什么是Spring?IOC是什么?DI是什么?

时间:2017/12/12 10:08:33 点击:

  核心提示:1.什么是Spring(面试题)(惠普的两个哥们做的spring) Spring是一个容器,可以接管各个层次的Bean(action/domain/pojo/javabean),并且可以配置bean与...

1.什么是Spring(面试题)(惠普的两个哥们做的spring) Spring是一个容器,可以接管各个层次的Bean(action/domain/pojo/javabean),并且可以配置bean与bean之间的关系 在java代码里使用bean只需要 用ApplicationContext 的getBean(配置文件里bean的id)方法就可以了。

Spring是依赖反射机制的,

那到底什么是反射机制呢: 反射机制就是利用(dom4j=java反射机制) userBean ub = Class.forName(com.bean.***)这里是com全路径 所以在Spring配置文件中bean 的id属性和class属性中要写全路径。

2.IOC是什么?(面试题)

ioc(inverse of control )控制反转:所谓控制反转就是把对象(bean)对象和维护对象(bean)之间的关系的权利转移到Sqring容器中去了(ApplicationContext.xml)而程序本身不在维护了

3.DI是什么?(面试题)

di(dependency injection)依赖注入:实际上DI和IOC是同一个概念,因为在ApplicationContext.xml配置文件中bean和bean之间通过ref来维护的时候是相互依赖的,所以又叫做依赖注入。也就是控制反转。

因为ApplicationContext是非常消耗内存的,所以必须保证一个项目里只有一个ApplicationContext实例:

那么如何保证这有一个实例呢,就需要把ApplicationContext对象做成单例形式,如何提取单例:???

----------------------------------------------------------------------------------

package com.util;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

final public class ApplicationContextUtil {

private static ApplicationContext ac = null;

//提供一个构造方法

private ApplicationContextUtil(){

}

static {

ac = new ClassPathXmlApplicationContext("applicationContext.xml");

}

//提供一个方法供外面使用

public static ApplicationContext getApplicationContext(){

return ac;

}

}

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

public static void main(String[] args) {

//这里调用要实例化applicationContext

ApplicationContext ac = ApplicationContextUtil.getApplicationContext();

AdminBean ad = (AdminBean) ac.getBean("adminBean");//这里填写的是"applicationContext.xml"里bean的id

ad.adminInfo();

作者:网络 来源:yiguang_82