码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 每日五道java面试题之spring篇(六)


    在这里插入图片描述

    目录:

    • 第一题 ApplicationContext通常的实现是什么?
    • 第二题 什么是Spring的依赖注入?
    • 第三题 依赖注入的基本原则
    • 第四题 依赖注入有什么优势?
    • 第五题 有哪些不同类型的依赖注入实现方式?

    第一题 ApplicationContext通常的实现是什么?

    FileSystemXmlApplicationContext :此容器从一个XML文件中加载beans的定义,XML Bean 配置文件的全路径名必须提供给它的构造函数。
    ClassPathXmlApplicationContext此容器也从一个XML文件中加载beans的定义,这里,你需要正确设置classpath因为这个容器将在classpath里找bean配置。
    WebXmlApplicationContext此容器加载一个XML文件,此文件定义了一个WEB应用的所有bean。

    第二题 什么是Spring的依赖注入?

    控制反转IoC是一个很大的概念,可以用不同的方式来实现。其主要实现方式有
    两种:依赖注入和依赖查找
    依赖注入:相对于IoC而言,依赖注入(DI)更加准确地描述了IoC的设计理念。所谓依赖注入(Dependency Injection),即组件之间的依赖关系由容器在应用系统运行期来决定,也就是由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。组件不做定位查询,只提供普通的Java方法让容器去决定依赖关系。

    第三题 依赖注入的基本原则

    依赖注入的基本原则是:应用组件不应该负责查找资源或者其他依赖的协作对象。配置对象的工作应该由IoC容器负责,“查找资源”的逻辑应该从应用组件的代码中抽取出来,交给IoC容器负责。容器全权负责组件的装配,它会把符合依赖关系的对象通过属性(JavaBean中的setter)或者是构造器传递给需要的对象

    第四题 依赖注入有什么优势?

    依赖注入之所以更流行是因为它是一种更可取的方式:让容器全权负责依赖查询,受管组件只需要暴露JavaBean的setter方法或者带参数的构造器或者接口,使容器可以在初始化时组装对象的依赖关系。其与依赖查找方式相比,主要优势为:

    • 查找定位操作与应用代码完全无关。
    • 不依赖于容器的API,可以很容易地在任何容器以外使用应用对象。
    • 不需要特殊的接口,绝大多数对象可以做到完全不必依赖容器。

    第五题 有哪些不同类型的依赖注入实现方式?

    依赖注入是时下最流行的IoC实现方式,依赖注入分为接口注入(InterfaceInjection),Setter方法注入(Setter Injection)和构造器注入(ConstructorInjection)三种方式。其中接口注入由于在灵活性和易用性比较差,现在从Spring4开始已被废弃。
    构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。
    Setter方法注入:Setter方法注入是容器通过调用无参构造器或无参static工厂方法实例化bean之后,调用该bean的setter方法,即实现了基于setter的依赖注入。

    如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力
    在这里插入图片描述

  • 相关阅读:
    y122.第七章 服务网格与治理-Istio从入门到精通 -- 流量治理实战进阶(八)
    前端框架基础——Vue.js
    【神策数据面试】手撕题
    10.力扣c++刷题-->两数之和
    Pandas教程17:关于json数据转化成DataFrame数据,消除警告提示的方法。
    LeetCode经典面试150题-day5(多数元素)
    【Linux】自动化构建工具-make/Makefile&&第一个小程序
    重回铁王座!时隔5年!Quill 2.0 终于发布啦
    王思葱、京西购物网-《软件方法》自测题解析017
    深度学习(PyTorch)——多分类问题(Softmax Classifier)
  • 原文地址:https://blog.csdn.net/m0_74436895/article/details/136286004
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号