Spring框架内容问答的形式回忆

  回忆一下Spring框架的相关知识,因为是回忆算不得准确,只是个人记录,加深Spring的印象。(长期更新补充)


请你简述一下Spring框架

  Spring是一个针对bean管理的轻量级容器框架,它提供了强大的IOC、AOP、Web MVC等强大的功能。它可以单独的构筑应用程序,也可以和Struts、webwork等其他的web框架组合使用,还可以和swing等桌面应用程序AP组合。所以Spring不仅仅可以用于J2EE程序中,还可以用于桌面应用程序以及小应用程序之中。


为什么说是轻量级容器框架,那有没有重量级的?

  有对比才会有轻量级和重量级的区分。比如和EJB容器对比,SpringCore文件容量不到1MB,资源负担也很小,入门也简单,而且Spring本身是非侵入式的。Spring中的对象不依赖Spring的特定类。而EJB容器则需要消耗大量的资源,相对来说,Spring就是轻量级的、EJB就是重量级的。


刚刚你说到Spring是针对Bean管理的,那它是怎么管理bean的?

  Spring是一个容器,容器就是一个可以放东西的地方。Spring中容器一般理解为BeanFactory或ApplicationContext。而这些容器就是管理bean的。

  BeanFactory是工厂模式,主要是读取bean配置、管理bean的加载、实例化、维护bean之间的依赖关系、也负责bean的生命周期。BeanFactory在对象getBean的时候才对对象进行初始化。

  ApplicationContext是在BeanFactory上的一个增强,不仅有BeanFactory的功能,还提供了国际化支持、AOP、事务等。ApplicationContext在解析配置文件时候就对配置文件中对象进行了初始化,getBean只是获取对象。

  Spring通过Xml配置文件或者注解来管理容器中的bean,就是说有这样一个Xml配置文件,里面配置了bean的相关信息,然后Spring去读取这个配置文件,解析出其中的内容,找到需要完成初始化的ClassName,然后进行初始化。初始化后的bean放在map中,应该不止一个map,因为获取bean的可能性有,通过名字获取、通过类型获取、通过接口获取,可能还有别的没记住。之后还会提供查询的接口,来获取这些bean。


那我们一般怎么获取bean呢?

  BeanFactoryAware和ApplicationContextAware

  BeanFactoryAware是通过bean工厂容器获取bean对象,而ApplicationContextAware是通过ApplicationContextAware获取bean对象,在使用过程中要注意区分用的是哪个容器,再用对应的aware

  BeanFactory最常用的实现是XmlBeanFactory,用ClassPathXmlApplicationContext加载xml配置将bean注入。

  ApplicationContext是BeanFactory的一种增强,一般我们都用的ApplicationContext,所以在ApplicationContextAware获取bean对象。


你简述一下IOC和AOP

  IOC 控制反转,就是本来我们获取依赖对象是通过自己主动去创建获取的,但是Spring通过容器创建bean对象,然后谁要用这个对象,Spring容器就把这个对象注入到你这,让你可以用。DI依赖注入就是IOC思想的具体实现,一般是Set注入、构造器注入、注解注入

  AOP 面向切面编程,就是可以想想是原来的编程流程是水道,AOP就横向的架在水道之上,然后我想要蓝色的水流,AOP就给蓝色的染料,我想要绿色的水流,AOP就给绿色的染料。我不想要黄色的水流,AOP就把黄色的水流截断,不给我。所以这就是切面,我横切在这对你施加一些自定的任务。比如日志、事务、权限等,是对原有逻辑的一种增强。AOP的底层是的动态代理,如果是接口则用JDK动态代理,如果是类用CGLIB实现动态代理。


2022-10-04 12:15:00

【好记性不如烂笔头】Spring框架内容问答的形式回忆-长期更新相关推荐

  1. 好记性不如烂笔头-笔记记录方法公开

    见字如面,我是东北码农. 俗话说,好记性不如烂笔头,在工作学习中记笔记是很重要的.今天介绍一下自己在工作中如何记录笔记,以及给大家安利一下win10自带的OneNote. 1.记录什么 1.1.流水账 ...

  2. 好记性不如烂笔头之 App widgets(二)

    好记性不如烂笔头之 App widgets(一)_禽兽先生不禽兽的博客-CSDN博客 之前记录了 AppWidgets 的基本用法,当我的小组件中需要展示列表的时候,发现它的方式也跟普通的列表控件不一 ...

  3. 好记性不如烂笔头——Vite篇

    茶已备好,只待君来!感谢关注 前端点线面 (>‿<),本号定期推荐原创深度好文,帮助每一位在前端领域打拼的伙伴们走向前列,此外关注我获取最前沿知识点.海量学习资料.<前端百题斩> ...

  4. 好记性不如烂笔头——C++篇

    大家好,我是前端点线面,毕业于华中科技大学,非科班出身的一枚新时代农民工,现在是百度前端研发工程师,著有<前端百题斩>.数十篇学习思维导图(go.React.Redux.Vue.Vuex. ...

  5. 进来在看《How Tomcat Works》这本书,将读书笔记贴在这里,好记性不如烂笔头。

    进来在看<How Tomcat Works>这本书,将读书笔记贴在这里,好记性不如烂笔头.  最简单的一个服务器,一个很简单的结果.  HttpServer构建ServerSocket,每 ...

  6. 好记性不如烂笔头:会议纪要本

    开发的大多数经历都用在思考代码如何写上,当你在进行某个项目时,突然开会又说要弄其他的项目,或者又是新的需求,需求错综复杂,多个项目交织在一起的时候容易乱. 开会时需要一个会议纪要本,会上讲了哪些关于你 ...

  7. 好记性不如烂笔头-linux学习笔记4apache相关知识

    好记性不如烂笔头-linux学习笔记4apache相关知识 apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 ...

  8. 好记性不如烂笔头——Vuex篇

    俗话说的好"好记性不如烂笔头",今天秉承着后期复习方便的态度,整理了一份Vuex基础知识点,并以思维导图的方式呈现出来,方便跟老铁们一起查漏补缺. Vuex.png 一.基础 1. ...

  9. 涨知识!华为备忘录还能这样玩,难怪古人说好记性不如烂笔头

    涨知识!华为备忘录还能这样玩,难怪古人说"好记性不如烂笔头" 古人云:"好记性不如烂笔头!"这句话是我们从小一直听到大的,可是真的能够做到的,真的没有几位,毕竟 ...

最新文章

  1. VC++ 监控指定目录改变
  2. (Java常用类)日期时间类
  3. C++头文件引入的一种小问题
  4. python列表间隔合并_Python使用zip合并相邻列表项的方法示例
  5. 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释
  6. 查看xxx.a库架构的命令
  7. pandas.read_csv参数详解
  8. [渝粤教育] 南京中医药大学 诊断学技能训练 参考 资料
  9. BooKuMaker0.6.04操作手册
  10. 制作双色调图像(RGB 颜色模式)
  11. python课本图片_python爬虫当当网python书籍图片
  12. 让幽默态度在工作上发挥蝴蝶效应
  13. QQ等级:QQ在线等级说明
  14. 研究生的压力应对与心理健康 测试题答案
  15. Excel如何从单元格中提取数值
  16. ubuntu conda环境安装包安装
  17. 华中科技大学2019年计算机录取分数线,2019华中科技大学录取分数线
  18. Unity的AB包超详细+代码注释,小白一看就懂!
  19. mysql数据库基操所遇问题及相关知识及命令记录
  20. stick to it

热门文章

  1. 华为,工资岗位揭秘 2010年08月02日
  2. Docker 镜像,基于 alpine 系统的时区配置
  3. C++小作业-设计一个用于人事管理的People(人员)类
  4. 整合经营模式之道——整合经营模式IMO的股票畅想
  5. java和胧村正差不多的游戏_对外行来说,怎麽把脑中一个游戏构思变成现实?...
  6. N 本Android 电子书
  7. 【历史上的今天】3 月 14 日:微软发布 IE9;黑莓创始人出生;圆周率计算创造新纪录
  8. 5.nginx访问控制
  9. python红楼梦词频统计
  10. 谷歌浏览器iframe兼容问题_关于IFRAME下的事件运行(兼容谷歌浏览器) - 程序园...