当前位置: 首页 > news >正文

Spring 容器

目录

  • 1、框架
    • 1.1、框架的作用
    • 1.2、核心库--bean
  • 2、spring 项目的搭建
  • 3、bean 的注册和注入
    • 3.1、bean 的注册
    • 3.2、bean 的注入

1、框架

1.1、框架的作用

我们使用Java作为开发语言时,几乎都需要使用ee框架(ssm),其中的 ssm 指的是 spring(boot):基本的脚手架,springmvc:专门做web开发,mybatis:数据库框架。广义的说,框架满足某些特定功能(比较多且强大),我们是在这些框架封装的代码设计上进行开发。使用框架可以提高开发效率,让我们能更好的管理项目。

1.2、核心库–bean

和集合框架中的容器类似,bean容器的主要作用是存储和使用bean对象:

  • 注册:创建一个bean对象,存储到容器中。 如:map.put(“id”, new Person())
  • 注入:从容器中取一个对象,注入到某个地方(某个对象的属性,方法参数)。如 Person p = map.get(“id”); p.think();

2、spring 项目的搭建

  • 搭建 Maven 项目

在这里插入图片描述

  • 在 pom.xml 文件中添加 spring-beans、spring-context 两个依赖包

在这里插入图片描述

  • 如果引入失败(依赖项是红色的),则检查idea中 maven配置是否正确

在这里插入图片描述

  • 修改完 pom.xml 后,一定要刷新 maven 面板,且检查 maven 面板中依赖项是否成功引入。

在这里插入图片描述

3、bean 的注册和注入

3.1、bean 的注册

  • 创建容器,填写需要被扫描的包路径,在包及子包路径下,如果存在spring框架注解的类,就会自动注册到容器中

在这里插入图片描述

  • 类注解:在指定的包下创建类,并将其类注解,那么该类会自动注册到容器中,注册的数据是键值对,键:类名首字母小写,值:bean对象

在这里插入图片描述
在这里插入图片描述

  • @Bean方法注解:注册 bean,除了上述的类注解,还有方法注解 @Bean,注册的数据是键值对,键:方法名,值:方法返回值(注入多个对象的好处是可以根据需要在 Person 中注入指定的一个)

在这里插入图片描述

引申:类注解是注册一个单例的 Bean 对象,而 @Bean方法注解,可以注册多个 Bean 对象

总结:需要满足以下两个条件才可以自动注册:
1、在指定的包路径下
2、有 spring 框架注解
由此可得,bean 注册省略了 new 对象和容器.add/put两个步骤

3.2、bean 的注入

bean 的注入是从容器中取一个对象,注入到某个地方,这里的示例是注入到某个对象的属性中。

  • 容器中注册两个类:Person、Mobile

在这里插入图片描述

  • 在 Person 类中增加 Moblie 属性,且这里的属性是容器中的 Mobile 类

在这里插入图片描述

总结:在代码使用上带来了改变,以前是一片代码写完,现在是看起来代码没关系,但是spring已经内部建立了对象和对象间的关系(依赖关系:X x = new X(); m.x = x,此时 x 和 m 存在一定的依赖关系,即 m 依赖 x ),更多的是注解的使用。

相关文章:

  • 【三十四周】文献阅读:DeepPose: 通过深度神经网络实现人类姿态估计
  • 自学网络安全(黑客技术)2025年 —100天学习计划,网络安全零基础入门到精通教程建议收藏!
  • Python 函数(传递任意数量的实参)
  • AI智算-k8s+SGLang实战:DeepSeek-r1:671b满血版多机多卡私有化部署全攻略
  • Vue02
  • hot100_300. 最长递增子序列
  • 使用FastAPI进行可视化部署
  • 应用层协议HTTP
  • 理解 预训练、微调、分布式训练
  • EWM 自动补充库存
  • 《操作系统 - 清华大学》8 -4:进程管理:进程控制结构
  • 为什么要学排序?
  • rust学习笔记5-所有权机制
  • C/C++数组的字符串与字符数组习题
  • 【蓝桥杯】第十五届省赛大学真题组真题解析
  • QT闲记-状态栏,模态对话框,非模态对话框
  • DeepSeek 助力 Vue 开发:打造丝滑的滑块(Slider)
  • VulnOSv2 靶机渗透测试
  • 基于 Python Django 的校园互助平台(附源码,文档)
  • python使用httpx_sse调用sse流式接口对响应格式为application/json的错误信息的处理
  • 上海潮汕联谊会举行换届大会,陈湖文当选会长
  • 广汽集团一季度净亏损7.3亿元,同比转亏,总销量下滑9%
  • 钱学森数据服务中心在沪上线,十万个数字资源向公众开放
  • 深圳大学传播学院院长巢乃鹏已任深圳大学副校长
  • “两高”司法解释:升档为境外非法提供商业秘密罪的量刑标准
  • 印控克什米尔恐袭引爆印巴新一轮外交摩擦,地区安全风险骤增