看一下,接下来又是一个概念性的东西,不过这个概念就比较具体一些了,DI和IOC是属于思想性质的,applicationContext和BeanFactory,简单说一下这个对象,再看这两个对象,咱们先说BeanFactory,这是一个接口,这个BeanFactory接口,是提供一个继承关系,继承关系组,BeanFactory是在最顶层

最顶层的一个接口,换句话说,Spring设计的第一个接口,这种接口的功能是多还是少,像这种顶层的,继承关系是在顶层的,不管是对象还是接口,他的功能设计肯定是比较少的,因为子类是会继承所有父类,所以越往下就越强大,但是这个BeanFactory你要知道,这是咱们最顶层的接口,然后你可以看到随着时间的推移,他不断地去完善BeanFactory接口,要加入功能通过加入接口的方式,然后往下发展,才会出现ApplicationContext接口,所以这里面的话,首先,BeanFactory接口,首先你要知道,Spring的最原始接口,原始接口,然后针对这种原始接口的实现类,这种功能比较单一,针对原始接口的实现类,功能较为单一,然后呢,原始接口BeanFactory,BeanFactory虽然原始,但是他是个容器,不管多原始,最基本的它是个容器,那BeanFactory的实现类,接口实现类的容器,特点是在每次获得对象时,才会创建对象,啥意思呢,就像咱们的ApplicationContext,ApplicationContext作为新一代的容器,他的特点是,容器在创建的时候,这两行代码我不要,只留这一行,他也会在我创建容器的时候,把容器里的对象都创建出来,咱们在底下获得的时候,实际上它是直接从容器中拿,而咱们的BeanFactory,早年的BeanFactory接口,特点就是你在获得的时候才会创建,很明显Spring刚出来的时候,咱们系统资源,都比较匮乏,那是2000初的事了,那个时候256M内存,标配内存是56M内存,那个年代的硬件资源是相当匮乏,那个时候你们玩过邮箱吗,那会的邮箱,个人空间只有20M,注册邮箱个人空间是20M,满20M如果你不删,你就收不了新邮件了,现在一封邮件就20了,发个附件就20M了,是不是这个意思,那会资源真的是匮乏,所以那个时候框架,Spring当时的BeanFactory的实现类,内存不够,全创建出来可能内存爆炸了,内存撑爆了,随着后来的发展,发展了ApplicationContext,用到了这个接口,定义了下面的实现类,那ApplicationContext的特点,是什么呢,在继承比较末端的一些接口了,他的特点是每次容器启动时,就会创建容器中配置的所有对象,所以你用ApplicationContext容器,每次获得时,就会创建了,然后除此以外还提供了更加丰富的功能,提供了更多功能,从结论上来说呢,那以后在开发过程当中呢,在WEB开发中,使用ApplicationContext,在资源匮乏的环境,可以使用BeanFactory,那有人说啥叫资源匮乏呢,将来有一天你在手机上,开发的时候,手机上来讲,永远是匮乏的,咱们手机你也看得出来,硬件的高速发展阶段,为什么硬件需要这么高速发展呢,这是因为性能的原因,一旦硬件达到一个饱和的状态,硬件的发展就会放缓,你看咱们的电脑实际上就已经放缓了,当年2000年初的那会,CPU的性能一方面受制于导体的限制,另一方面硬件相对比较饱和,所以说是放缓了,你看现在因特尔的研究,都往哪方面研究了,效能,功耗,怎么玩更省电,往这个方向,这是咱们的结论,然后呢ApplicationContext,他还有两个典型的实现类,一个典型的实现类是从类路径下加载查找配置文件的,叫做ClassPathXmlApplicationContext,还有一个从咱们的绝对路径,从硬盘绝对路径下,加载配置文件,其实咱们也用不着,FileSystemXmlApplicationContext,这是两个典型的ApplicationContext的实现类,主要是使用ClassPath这个,加载配置文件,从磁盘绝对路径加载的话,你这个路径要写的话,就是D盘冒号,xxx文件夹的,这个就是咱们的概念,知道就行了

看一下配置,配置详解,Spring的配置,Spring学起来简单,最烦的就是配置文件,配置量还比较大,看一下Bean元素它是干嘛用的,凡是要交给Spring容器来管理的对象,是不是都是用Bean来描述,所以使用Bean元素,该元素,描述需要Spring容器管理的对象,描述的话你得看属性了,name属性咱们刚才说过,name属性它是干嘛的,就是给被管理的对象,起个名字,起这个名字的目的,就是在获取的时候,用这个名字获取,获得对象时,根据该名称获得,获得对象,然后第二个属性是class属性,class属性的话,被管理对象的完整类名,那完整类名的话,要完整路径的目的,就是实例化对象,就是这么回事,再介绍一个属性,比较早年的,id属性,他就叫做id属性,再看看id属性,id属性首先从功能性上来讲,与name属性一模一样,哪有人说一模一样那还要id属性干嘛,就直接用name属性就可以了,id在整个软件界,他肯定要符合唯一的规范,id的话,规则,名称不可重复,并且不能够使用特殊字符,那就是说ID的话,我想配置一个带有特殊字符的,那我是做不到的,比如说在早年,与Struts1整合的时候,给Action配名字,一般都是希望加上一个斜杠,比如/UserAction,这样配的,但是id属性你这样配他就给你报错,启动的时候告诉你,属性出现非法字符,于是为了让名字配置更加灵活,所以id的规矩不能坏,不能把id的规则给改了,所以他就增加了一个属性叫做name属性,这样的话就在name属性里面,可以使用特殊字符了,知道啥意思不,特殊字符,百分号,横杠这些都可以有了,这样的话起名字会比较灵活一些,其实它叫了name属性,他不受id属性的限制,所以他这个name属性的特点,第一名称可以重复,可以重复,并且可以使用特殊字符,但是重复,我知道是哪个user,这个不需要关注,因为首先咱们开发的时候,不推荐使用特殊字符,因为没有任何意义,而到底是配置两个user,name都叫user,你到底获得的是哪一个,自己试去,我不告诉你,有兴趣你自己去试,错误的路你还想知道结果,我不给你支持,这是name的特点和id的特点,可以重复,不可以重复,可以使用特殊字符,和不可以使用特殊字符,那最终的结论是什么呢,结论的话,尽量使用name属性,id是老古董属性了,那这样的话id属性就介绍完了,然后把名字输入进来,叫做user
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd "><!-- 将User对象交给Spring容器管理 --><!-- Bean元素:使用该元素描述需要spring容器管理的对象class属性:被管理对象的完整类名name属性:给被管理的对象起个名字,获得对象时根据该名称获得对象.可以重复,可以使用特殊字符id属性:与name属性一模一样名称不可重复,不能使用特殊字符结论:尽量使用name属性 --><bean name="user" class="com.learn.bean.User"></bean></beans>
Spring配置的详解之Bean,咱们几天的内容比较碎,一块和一块之间的联系可能不是很大

spring项目概念-BeanFactoryApplicationContext相关推荐

  1. spring项目概念-IOCDI

    IOC和DI,IOC和DI这两个概念,这两个概念其实特别的简单,可以说打我们学JAVA以来,最简单的思想了,IOC这三个字母,全写是Inverse Of Control,翻译过来就是,反转控制,IOC ...

  2. 在Eclipse中使用Maven构建Spring项目

    最新版的Spring需要使用Maven构建,本文讲述怎么在Eclipse构建Maven项目,以配置Spring项目为例. maven简单介绍 maven是构建工具,也是构建管理工具.ant只是构建工具 ...

  3. JavaSE、JavaEE与Spring的概念和异同点剖析

    JavaSE.JavaEE与Spring的概念和异同点剖析 什么是JavaSE JavaSE是Java的核心,也就是 Java的主要部分.用于开发桌面应用程序和基于web的应用程序.它提供了从基本对象 ...

  4. Spring入门(四):使用Maven管理Spring项目

    让我们先回顾下本系列的前3篇博客: Spring入门(一):创建Spring项目 Spring入门(二):自动化装配bean Spring入门(三):通过JavaConfig装配bean 1.为什么要 ...

  5. Spring Cloud概念+案例(eureka注册+拉取、ribbon负载均衡+重试)、netfix各组件介绍【上】

    Spring Cloud概念+案例(断路器)[下] https://blog.csdn.net/LawssssCat/article/details/104632719 [⭐️⭐️⭐️] Spring ...

  6. Spring入门详解(一)如何配置一个简单的spring项目

    关于spring的一些概念,网上已经有很多的说明,本系列不会做太多的描述,重心在如何配置上. 一.准备工作 1.安装JDK,配置环境.(本来不想写这条的-想了想,还是写上) 2.下载开发包 Sprin ...

  7. SSM Chapter 05 Spring 核心概念

    SSM Chapter 05 Spring 核心概念 笔记 本章目标: 理解Spring IoC的原理 掌握Spring IoC的配置 理解Spring AOP的原理 掌握Spring AOP的配置 ...

  8. Spring框架学习笔记(1) ---[spring框架概念 , 初步上手使用Spring , 控制反转 依赖注入初步理解 ]

    spring官网 -->spring官网 spring5.3.12–>spring-framework 在线文档 --> Spring 5.3.12 文章目录 1.Spring概论 ...

  9. spring 项目中集成 Protocol Buffers 示例

    http://blog.csdn.net/fangzhangsc2006/article/details/8687388 本文适用于了解spring框架,同时想在spring项目中使用Protocol ...

最新文章

  1. bootstrap-less源码分析:行和列
  2. FPGA较传统CPU强在哪里?
  3. ngx_pagespeed加速nginx
  4. [error] OpenEvent(Global\ngx_stop_25184) failed (2: The system cannot find the file specified)
  5. 数据库语法_圣诞快乐:用GaussDB T 绘制一颗圣诞树,兼论高斯数据库语法兼容...
  6. setBackgroundResource的一个问题
  7. 利用云计算打造政务信息化及应急指挥云平台
  8. 工业机械类企业官网织梦模板源码
  9. 昨晚的我是歌手,人工智能也掺了一脚
  10. pytorch 存取模型(待补充)
  11. 金蝶专业版过账提示运行时错误5_金蝶财务软件的操作流程
  12. js获取当前URL、域名、端口号等
  13. advapi32 无法定位_无法定位程序输入点RegSetKeyValueA 于动态链接库 ADVAPI32.dll上 解决方案...
  14. 软件技术专家能力模型
  15. 微信小程序Radio为一组时,使用三元表达式始终选中默认值
  16. /MD 与 /MT、/MTD与/MDD的区别
  17. java语言获取数据库中的表的总行数
  18. [理财] 关于平民理财,自己的一些理解
  19. 怎么PDF中更换图片
  20. 一维数组cvs文件,求数据平均值

热门文章

  1. 中国软件正版化的理想模型
  2. [学习笔记]Event与Bindable
  3. 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现按部门组织机构设置权限...
  4. 从源码构建 MyBatis Generator(MBG)
  5. MySQL查询优化之explain的深入解析
  6. 《分布式系统:概念与设计》一1.3 分布式系统的趋势
  7. Java语言学校的危险性(译文)
  8. 我用着不舒服的东西, 就TM是不合理的东西!!!
  9. Java @override报错的解决方法 .
  10. iframe js 加载失败_如何提高Vue项目首页的加载速度