IOC和AOP以及spring框架的面试宝典

目录

Spring 概述

1.什么是spring?

2.spring的作用?

3.解释Spring支持的几种bean的作用域?

4.Spring支持的事务管理类型?

5.如何通过 XML 方式创建 Bean?

6.依赖注入和控制反转的区别

7. IOC的优点是什么?

依赖注入

1.什么是IOC?

2.依赖注入的三种实现方式?

 3.依赖注入的实现方法有哪些?

4.什么是DI?

5. 什么是Spring的依赖注入?

6.  有哪些不同类型的IOC(依赖注入)方式?

7. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter方法注入?

8.IOC和DI的关系

Spring注解

1. 什么是基于注解的容器配置?

2. 怎样开启注解装配?

3. @Required  注解

4. @Autowired 注解

5. @Qualifier 注解

Spring面向切面编程(AOP)

1.解释AOP

2.AOP 的相关注解有哪些?

3. 切点

4. 什么是引入? 

5. 什么是目标对象? 

6. 什么是代理?

Spring 的MVC

1. 什么是Spring的MVC框架?


Spring 概述


1.什么是spring?

spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,是一个分层的javaEE一站式轻量级开源框 架.

2.spring的作用?

方便解耦,简化开发,AOP编程支持,声明式事务支持,集成Junit更加方便的进行分层测试,方便集成各种优秀框架.

3.解释Spring支持的几种bean的作用域?

a、singleton : bean在每个Spring ioc 容器中只有一个实例。

b、prototype:一个bean的定义可以有多个实例。

c、request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。

d、session:在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形 下有效。

e、global-session:在一个全局的HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的 SpringApplicationContext情形下有效。缺省的Spring bean 的作用域是Singleton

4.Spring支持的事务管理类型?

a、编程式事务管理:这意味你通过编程的方式管理事务,给你带来极大的灵活性,但是难维护。 b、声明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和XML配置来管理事务。

5.如何通过 XML 方式创建 Bean?

6.依赖注入和控制反转的区别

依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;

控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。

7. IOC的优点是什么?

IOC 或 依赖注入把应用的代码量降到最低。它使应用容易测试,单元测试不再需要单例和JNDI查找机制。最小的代价和最小的侵入性使松散耦合得以实现。IOC容器支持加载服务时的饿汉式初始化和懒加载。

依赖注入


1.什么是IOC?

控制反转,把创建对象的权利交给spring

2.依赖注入的三种实现方式?

构造器注入,Setter方法注入,接口注入

 3.依赖注入的实现方法有哪些?

4.什么是DI?

属性的依赖注入,spring在通过IOC创建对象的时候,如果对象还有属性,就一并给赋值进去DI是在IOC的基础上进行对象的属性 注入

5. 什么是Spring的依赖注入?

依赖注入,是IOC的一个方面,是个通常的概念,它有多种解释。这概念是说你不用创建对象,而只需要描述它如何被创建。你不在代码里直接组装你的组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后一个容器(IOC容器)负责把他们组装起来。

6.  有哪些不同类型的IOC(依赖注入)方式?

  • 构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。
  • Setter方法注入:Setter方法注入是容器通过调用无参构造器或无参static工厂 方法实例化bean之后,调用该bean的setter方法,即实现了基于setter的依赖注入。

7. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter方法注入?

你两种依赖方式都可以使用,构造器注入和Setter方法注入。最好的解决方案是用构造器参数实现强制依赖,setter方法实现可选依赖。

8.IOC和DI的关系

①谁依赖谁呢

 当然是某个容器管理对象依赖于IOC容器;“被注入对象的对象”依赖于“依赖对象”;

 ②为什么需要依赖呢

容器管理对象需要IOC容器来提供对象需要的外部资源;

③ 谁注入谁

很明显是IOC容器注入某个对象,也就是注入“依赖对象”;

④注入了什么

就是注入某个对象所需要的外部资源(包括对象、资源、常量数据)。 

Spring注解


1. 什么是基于注解的容器配置?

相对于XML文件,注解型的配置依赖于通过字节码元数据装配组件,而非尖括号的声明。

开发者通过在相应的类,方法或属性上使用注解的方式,直接组件类中进行配置,而不是使用xml表述bean的装配关系。

2. 怎样开启注解装配?

注解装配在默认情况下是不开启的,为了使用注解装配,我们必须在Spring配置文件中配置 <context:annotation-config/>元素。

3. @Required  注解

这个注解表明bean的属性必须在配置的时候设置,通过一个bean定义的显式的属性值或通过自动装配,若@Required注解的bean属性未被设置,容器将抛出BeanInitializationException。

4. @Autowired 注解

@Autowired 注解提供了更细粒度的控制,包括在何处以及如何完成自动装配。它的用法和@Required一样,修饰setter方法、构造器、属性或者具有任意名称和/或多个参数的PN方法。

5. @Qualifier 注解

当有多个相同类型的bean却只有一个需要自动装配时,将@Qualifier 注解和@Autowire 注解结合使用以消除这种混淆,指定需要装配的确切的bean。

Spring面向切面编程(AOP)


1.解释AOP

AOP是将一些共性的内容进行抽取,在需要用到的地方,以动态代理的方式进行插入.在不修 改源 码的基础上,还能对源码进行前后增强

2.AOP 的相关注解有哪些?

3. 切点

切入点是一个或一组连接点,通知将在这些位置执行。可以通过表达式或匹配的方式指明切入点。

4. 什么是引入? 

引入允许我们在已存在的类中增加新的方法和属性。

5. 什么是目标对象? 

被一个或者多个切面所通知的对象。它通常是一个代理对象。也指被通知(advised)对象。

6. 什么是代理?

代理是通知目标对象后创建的对象。从客户端的角度看,代理对象和目标对象是一样的。

Spring 的MVC


1. 什么是Spring的MVC框架?

Spring 配备构建Web 应用的全功能MVC框架。Spring可以很便捷地和其他MVC框架集成,如Struts,Spring 的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离。它也允许以声明的方式把请求参数和业务对象绑定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值