面试题:说说你对spring的理解

作者&投稿:在竿 (若有异议请与网页底部的电邮联系)
请你谈谈对spring的理解?~

1.解释spring的ioc? 几种注入依赖的方式?spring的优点?

IOC你就认为他是一个生产和管理bean的容器就行了,原来需要在调用类中new的东西,现在都是有这个IOC容器进行产生,同

时,要是产生的是单例的bean,他还可以给管理bean的生命周期!

spring的IOC有三种注入方式 :

第一是根据属性注入 也叫set方法注入;
第二种是根据构造方法进行注入;

第三种是根据注解进行注入,这种方式我认为比较好,方便,要是bean多的话,使用前两种方式会使得配置文件过于臃肿。

Spring的优点:主要是根据它的IOC和AOP体现的。我感觉他就是把我们以前用到的工厂模式和代理模式进行了一个封装。
IOC主要是解决了代码的耦合性问题,而AOP是面向切面编程的最好解释!


2.解释Spring中IOC, DI, AOP
ioc就是控制翻转或是依赖注入。通俗的讲就是如果在什么地方需要一个对象,你自己不用去通过new 生成你需要的对象,

而是通过spring的bean工厂为你长生这样一个对象。

aop就是面向切面的编程。比如说你每做一次对数据库操作,都要生成一句日志。如果,你对数据库的操作有很多类,
那你每一类中都要写关于日志的方法。但是如果你用aop,那么你可以写一个方法,在这个方法中有关于数据库操作的方法,
每一次调用这个方法的时候,就加上生成日志的操作。



3.spring的ioc/aop/代理
ioc是控制反转,是spring的核心思想。通过面向接口编程来实现对业务组件的动态依赖。 aop是面向

切面编程,它并不是只在spring或者java中才有的,它和面向对象编程(oop)是相对而言的另一种编程思想。

spring在实现aop编程时利用的是java的代理机制。 个人觉得java代理机制真的是很神奇。核心内容并不多



4.spring的ioc是解耦,aop是干什么的
AOP面向切面编程 将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。
比如: 很多方法可能会抛异常,你要记录这个异常到日志中去,可以写个拦截器类,在这个类中记录日志,
在spring.xml中配置一个对这些要记录日志的方法的aop拦截器 在这个方法执行后调用这个拦截器,记录日志。
这样就不用每次抛异常都要手动记录日志。 spring的事务管理用到的就是aop 这样也可以提高程序的内聚性。


5.讲解一下Java中Spring中IOC和AOP
IoC:说直白点,就是通过配置文件(XML或.properties)指定需要实例化的JAVA类(类名的完整字符串),
包括该JAVA类的一组初始化值,然后我们在代码中加载该配置文件,然后通过 .getBean() 函数就可以得到一个该JAVA类的对象,
并且该对象已经根据配置文件中指定的属性值进行了初始化。

AOP:这个比IoC更简单,直白点说就是实现调用某个方法之前或/和之后,自动执行一系列自定义的语句



6.简述Spring框架中IOC和AOP
IOC:控制反转,是一种设计模式。一层含义是控制权的转移:由传统的在程序中控制依赖转移到由容器来控制;
第二层是依赖注入:将相互依赖的对象分离,在spring配置文件中描述他们的依赖关系。他们的依赖关系只在使用的时候才建立。

AOP:面向切面,是一种编程思想,OOP的延续。将系统中非核心的业务提取出来,进行单独处理。比如事务、日志和安全等。
Spring 的AOP和IOC都是为了解决系统代码耦合度过高的问题。使代码重用度高、易于维护。
不过AOP和IOC并不是spring中特有的,只是spring把他们应用的更灵活方便 。

aop,面向切面编程,他的最底层是实现的动态代理设计模式。

你可以把这个设计模式,说给他听就行了,如果不了解动态代理,去研究一下。

aop的底层就是这样实现的。

原文:https://www.zhihu.com/question

Spring是一个十分庞大的体系,具体可以访问它的官网https://spring.io/projects进行详细了解。
首先,回答这个问题,可以先介绍一下Spring体系中的几个项目:

  • SpringFramework

  • SpringData

  • SpringSecurity

  • SpringBoot

  • SpringCloud

  • 当然,除了这些之外,Spring还包括很多其他的项目。
    接着,着重介绍SpringFramework这个项目,它是一个开源的Java/JavaEE全功能栈的应用程序,SpringFramework提供了一个简易的开发方式,这种开发方式可以避免使用那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。
    Spring的这种低侵入式设计使代码的污染极低。
    SpringFramework包括以下部分:

    然后,我们再介绍一下Spring的核心概念:

  • Bean管理

  • 依赖注入(DI),又称为控制反转(IOC)

  • 面向切面编程(AOP)

  • ①Bean管理

    与传统的应用程序不同,在Spring中将对象的创建交给Spring容器来管理,也就是说只有放入Spring容器中的类,Spring才能对其产生作用。那么Spring究竟是怎样获取类的对象的呢?
    要想知道这个,我们首先要弄清楚这几点:
    BeanFactory是Spring容器的根接口,ApplicationContext是它的子接口,通常用它的子接口ApplicationContext来访问Spring容器。


    ApplicationContext子接口常用的有四个实现类:

  • ClassPathXmlApplicationContext 从 classpath 加载 spring 的配置文件

  • FileSystemApplicationContext 从系统文件加载 spring 的配置文件

  • AnnotationConfigApplicationContext 获取基于注解的 spring 容器对象

  • XmlWebApplicationContext 在 web 环境中获取 spring 容器对象

  • Spring通过BeanFactory来获取这些类的对象,在配置文件中通过<bean/>节点将类交给Spring进行管理,ApplicationContext的实现类通过getBean()方法从Spring容器中获取对象,默认为单例的。


    ②依赖注入


    它可以降低类之间的耦合性,有两种注入方式:

  • set注入,在配置文件中使用<property>节点

  • set注入

  • · 构造方法注入,在配置文件中使用<constructor-arg>节点

  • 构造方法注入

  • 下面举个例子来说明一下什么是依赖注入:


    假设类A因功能F需要调用类B,传统的程序中,我们就会去new一个类B的对象,因而类A就会依赖类于类B,这就是说如果类B不存在,则类A也就无法使用。而使用依赖注入以后,类A只需要去调用实现功能F接口的一个实现类,这个实现类可能是类B,C等等,具体调用谁是有Spring的配置文件决定的,这样类A就不再依赖于类B。
    我们可以这样理解控制反转:
    资源不是由使用资源的双方进行管理,而是由不使用资源的第三方(即Spring容器)进行管理,这样做的好处是:

  • 资源集中管理,实现资源的可配置与易管理

  • 降低使用资源双方的依赖程度

  • 在传统程序中,当某个角色需要另外一个角色协助时,由调用者来创建被调用者的实例。而在Spring中,创建被调用者的的工作不再由调用者来完成,而由第三方Spring容器来完成,所以称为控制反转,Spring容器创建被调用者的实例,然后注入调用者,所以又称为依赖注入。


    ③面向切面编程

    AOP在Spring中主要表现在两个方面:

  • 提供声明式事务管理

  • Spring支持用户自定义切面

  • 面向切面编程是对面向对象编程(OOP)的补充。面向对象编程将程序分解成为各个层次的对象,面向切面编程将程序运行过程分解成各个切面。面向切面编程基于动态代理实现,降低了类直接的耦合程度。Spring的事务管理就是基于AOP实现的。

    免费资源教程



spring:
1)开源框架
2)IoC(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合
3)AOP 将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照方面编程,提高了复用性

IoC和AOP是spring最重要的两个特性,面试官差不多就看这个吧,至于spring mvc之类的估计面试官不一定感兴趣

Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。

我只知道它是一个开源的框架


请问SP行业游戏文案该如何起步?
asp 2、多去一些行业网站。包括网络游戏策划论坛、sp论坛等等。3、去你的竞争对手网站,了解他们的产品。同时去一些网络游戏网站,了解他们的游戏系统。这些对你建构自己的系统非常有帮助。因为在游戏行业,学习和借鉴非常之普遍。4、多和有经验的同事学习,尽快融入公司是你最需要学习的 ...

有一带负电的粒子,其带电量q=—2×10 -3 C。如图所示,在场强E="200...
(1)0.02 J (2)13 试题分析:(1)SP之间的电势差为:U SP =Eh=φ S -φ P ∴φ P =φ S -Eh="0" V -200×5×10 -2 V="-10" V(2分)小球在P点的电势能为E p =qφ P ="-2×10-3×(-10)" J="0.02" J(2分)(2)对小球从P点出发第一次回到最右端的...

谁来说说第七章满sp多少??
错,国服第一章就注册的老玩家,当时多一个20SP的任务,到了第二章更新后就取消了这个任务,那么第二章以后注册的玩家最后就只有4131的SP点了,这是没办法的。如果你的点数最后不是4151或者4131,那你一定是少做了某个SP任务

SP歌词翻译.
when I'm gone Have you ever loved someone so much you give an arm for Not the expression, NO, literally give an arm for.你有值得你拥抱的人吗,是亲自拥抱,不是嘴上说说,When they know they are your heart and you know you are their armor And you will destroy anyone who will...

召唤师SP如何使用更加完美?我怎么使用老是感觉SP不够用啊?
喷口火就去玩去了,有待证实。- -# 契约召唤:桑德尔SP30X18=540点,确实是个好帮手,但为什么要舍弃呢,因为舍弃了它,可以加满一个上位精灵,原先我加的骑士,就出一个光上位精灵,总觉得输出不够强大,所以洗点以后舍弃了,(要不是SP不够,是我最不愿意舍弃的生物宝宝)。 再说说上位精灵:...

北单买复试的怎么计算SP值
哥们最早的PS值只是参考,是根据投注量变化的,到了早上10点多开奖的时候的PS值才是最终的PS值,到时候你买的3串一,就是3个PS相乘再乘以1.3就是你的奖金了。

dnf第三季女机械纯刷图加点。sp,qp,tp全有,解释有。最好说说装备等...
职业:机械之心 等级:70 总SP:7470 已用SP:7425 剩余SP:45 总TP:21 已用TP:20 剩余TP:1 总QP:2670 已用QP:2665 剩余QP:5 ===【技能分类】=== ---【普通】--- 后撩踢,等级:1 强制-后撩踢,等级:1 浮空弹,等级:1 刺踢,等级:1 RX-78追击者,等级:30 G-14手雷...

SP貂蝉的星SP貂蝉
离魂——出牌阶段限一次,你可以弃置一张牌并将你的武将牌翻面,若如此做,指定一名男性角色,获得其所有...然后说说主打技能离魂,和离间一样直接针对男性角色。首先不可避免的先谈谈离魂的负面效果,回合内出牌...SP貂蝉要配合别人的话,代价还是略大的。伪仁德什么的,虽然确实能够对场上做出贡献,但是还是想想清楚...

战法加点
然后说说无球, 满 我是满了, 因为无论在刷图还是PK, 移动速度都是我最看重的一个属性, 而且这个球是最剩蓝的球, 在与怪单挑的时候, XXX球XXX球 不仅伤害高 而且剩蓝, 何乐而不为呢?这时候你可能在想, 照你这么说 SP到底够不够啊. 嘿嘿, 我很负责任的跟你说, 我就是按照这个模子点的...

SqlServer调优的几个关键的步骤--sp
今天,我不准备围绕这几个话题展开讨论,就单独说说,sp_lock,sp_who在数据库调优中起到的作用。 SQL Server数据库引擎为了保证每一次只有一个线程同时访问同一个资源的对象而采用的一种锁定机制,系统有大量锁时就产生了“数据阻塞”。因此你的数据库设计和程序编制应该科学和合理,以便让sql&#...

福鼎市18245973299: 面试题:说说你对spring的理解 -
淡天氟哌: spring: 1)开源框架 2)IoC(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合 3)AOP 将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照方面编程,提高了复用性 IoC和AOP是spring最重要的两个特性,面试官差不多就看这个吧,至于spring mvc之类的估计面试官不一定感兴趣

福鼎市18245973299: 程序员面试怎么回答面试官:你对Spring的理解 -
淡天氟哌: 会一些主流的框架 面试的时候确实有用 但与实际“码力”没有太大关系 我常常把这种关系比作像中西医,中西餐的关系 面试需要一些比较明显的指标,面试一样无法知道你的写代码能力,只好用这些东西来做参考 西医流行正是因为有这些指标...

福鼎市18245973299: 面试官要我介绍一下spring,我该如何比较全面的回答 -
淡天氟哌: 全不全面不是最重要的,关键是用自己的语言说出自己对spring的理解,才能显示出你真的懂得了spring的作用,你把其他人贴的那些长篇大论全背下来人家也不满意.简单地说,spring是用来管理你的类的框架,管理它们之间的互相调用和依赖关系,通过接口解藕,可以方便的更换使用多种不同的技术实现来完成你的系统.

福鼎市18245973299: 如果一个面试官问你什么是Spring,它有什么用,怎么回答才是最好的? -
淡天氟哌: Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅限于服务器端的开发.从简单性、可测试性和松耦合的...

福鼎市18245973299: 什么是spring 最新面试题答案 -
淡天氟哌: 1.是bean容器,应用Spring框架前创建,实例化bean,解决各种关联,进行依赖注入.2.

福鼎市18245973299: java面试题怎么理解springmvc -
淡天氟哌: spring MVC 其实就是 spring 自己做了一套很合适的 controller层 给自己的spring 容器.结合性更好,省去了之前像struts 之类的 繁琐的配置. 这个东西的核心就是 Dispatcher(可以理解成一个servlet),根据配置映射的JSP文件路径进行跳转.controller层也可以使用annotation(注解)的方式来描述.MVC的中的C.

福鼎市18245973299: java面试 为什么要使用spring -
淡天氟哌: 自己可以看看 主要懂核心原理就好.而且spring有七大模块;3;7,很容易添加新的映射策略,由DispatcherServlet返回响应给用户不是要使用spring,而是以此来测试你对java这行三大框架的了解;4.springmvc核心架构的具体流程步骤如下:...

福鼎市18245973299: 一道面试题:spring是如何控制事务的?
淡天氟哌: spring的事务是通过“声明式事务”的方式对事务进行管理,即在配置文件中进行声明,通过AOP将事务切面切入程序.最大的好处是大大减少了代码量,比如: Java code ?

福鼎市18245973299: Spring是基于什么实现的(曾经面试的时候别人问到的,我当时懵了,求解)
淡天氟哌: Spring框架的核心基于控制反转(inversion of control,IoC)原理.符合控制反转原理的应用使用配置文件来描述组件间的依赖,然后由控制反转框架来实现配置的依赖.“反转”意味着,应用不控制其结构,而是让控制反转框架来完成.例如,类Foo的一个实例依赖于类Bar的一个实例来进行某些操作.传统的方式是Foo使用new操作符或通过某种工厂类来创建一个Bar的实例.使用控制反转机制,Bar的实例(或者其子类的实例)是通过某些外部进程在运行时动态传递给Foo实例的.

福鼎市18245973299: 面试问到spring ioc原理应该怎么说 -
淡天氟哌: 以前有人问过这类问题,在百度文库里面有的.你可以参考一下.最主要的是你自己的看法.所谓的原理也是人总结出来的.我相信,你如果在面试的时候将自己所理解的原理讲出来一定会加分的.祝你好运.面试官并不一定要听你把那个原理背出来,背书谁都会,主要还是想看看你的想法,明白了吗.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网