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

spring篇1-spring的ioc

spring的核心技术ioc,aop能实现模块之间、类之间的解耦合。依赖class a 中使用了class b的属性或者方法则称class a依赖class b。1.ioc(Inversion of control):控制反转使用ioc的目的是减少对代码的改动实现不同的功能即解耦合。2.ioc的技术实现时DI(Dependency Injection,依赖注入)spring是使用了di实现了ioc的功能spring底层创建对象使用的是反射。3.实现步骤(1)新建项目之前的blog里写的创建maven项目的方法项目结构pom.xml文件如下pom.xml文件中properties标记的maven-compile都改为1.8(使得编译时生成的target文件夹中含有.xml文件添加spring-context插件。新建一个接口SomeServive:新建接口实现类SomeServiceImpl:resources目录下建立beans.xml文件这个文件是spring的核心注意beans标记里的bean标记每一个bean标记相当于new的一个对象即用bean标记来替代代码中的new语句主程序代码ClassPathXmlApplicationContext类从类路径编译生成的target文件夹下的classes文件夹寻找与参数指定的.xml文件返回一个ApplicationContext对象如果beans.xml不是在classes目录下则要修改路径字段ApplicationContext对象就是spring容器通过容器的getBean()方法获取对象注意别忘了强制类型转换参数是.xml文件中bean标记的id值运行程序getBean()方法从容器中获取已创建的对象注意ApplicationContext对象就是spring容器当生成一个ApplicationContext对象时就已经通过类的构造函数生成了.xml文件中所有的对象。例如在SomeServiceImpl类中加一个构造函数去掉main程序中的getBean方法发现类的构造函数依然执行了注意当我们用获取同一个bean的对象赋给两个新建的不同的对象时 会发现它们指向同一个对象2获取spring容器中java对象的信息运行结果上图的输出结果是beans中所有bean的id值。3spring还可以创建一个非自定义类对象运行结果4spring给对象基本属性赋值格式步骤在实现类中添加字段及其get,set方法并重载toString()修改beans.xml注意property标记给对象属性赋值是调用set()方法如果类中未写则程序会报错。5spring给对象引用类型属性赋值格式本质上是一个bean创建对象时给属性赋值时调用set()方法时使用另一个bean创建的对象。6构造注入在实体类中添加含参数的构造方法或者补充spring中存放对象的情况放入到spring容器中的对象有dao类、service类、controller类、工具类放到spring容器中这些对象默认是单例的在容器中这个名称的对象只有一个。不放入到spring容器中的对象有实体类对象实体类数据来自数据库、serveletlistener,filter这三种对象交给tomcat创建不放入到容器中等。
http://www.rkmt.cn/news/1412712.html

相关文章:

  • UV打印机断墨了别慌!手把手教你用PrintExp的‘断孔补偿’功能快速修复
  • 昇科仪器——深耕生物分析领域的进口分子质量光度计推荐生产厂家 - 品牌推荐大师1
  • 企业级LAMP备份【20260528】001篇
  • 开发者EB1A申请:将技术贡献转化为杰出人才证据的完整指南
  • 算法突围:“双核四驱”理论下的“官网”AI引用概率提升指南
  • 革命性AI语言模型GPT-2:OpenAI的开源杰作如何改变文本生成
  • Kubernetes Pod 调试:从 kubectl 命令复制粘贴到系统化排查方法论
  • AI推理和训练系统:AI从学习到应用的核心引擎
  • 观测Taotoken用量看板如何帮助团队精细化控制API成本
  • AE之路:芯片测试相关(自用,不断更新)
  • 如何在Windows 11上快速安装Android应用:终极WSA使用指南
  • SaltStack和Ansible哪个更简单?上手与速度实测对比
  • 如何为Windows系统一键配置安卓开发环境:完整ADB Fastboot驱动解决方案
  • 2026年工业级3D扫描仪如何选?价格之外更要看精度与场景适配 - 工业三维扫描仪评测
  • 别再凭感觉了!手把手教你用数学公式精确计算Buck电路输出纹波(附TI文档解读)
  • RFSoC跳频通信实战:5分钟搞懂NCO实时切换与多片同步(MTS)配置
  • 绝了!教育部抽检新规应对指南:8款AI毕业论文查重降重工具,第一名居然这么能打 - 逢君学术-AI论文写作
  • Hotkey Detective:Windows热键冲突终极排查指南,快速定位占用程序
  • ThumbGate v1.4.1:为AI编码助手实时注入安全与质量防护
  • 绍兴装修公司推荐|2026年6月 避坑必看!本土靠谱装修怎么选,这 8 大雷区千万别踩 - 博客万
  • Elasticsearch 核心入门(四)文档操作
  • D3KeyHelper终极配置指南:5个核心模块彻底解析暗黑3自动化助手
  • Unlock-Music完整指南:5分钟快速解锁所有加密音乐格式
  • 低代码平台表单设计器 unione form editor 组件 —— 引用组件
  • 使用 Token Plan 套餐后月度 API 成本的可预测性变化感受
  • 2026最新英语听说AI软件盘点 练听力口语避坑实用干货攻略
  • 设计模式分类介绍
  • 实测GPR数据不够用?手把手教你用Python给探地雷达图像加噪声(附去直达波代码)
  • 告别电网污染:手把手教你用Matlab/Simulink仿真有源PFC电路(附完整模型)
  • Windows安卓连接终极解决方案:最新ADB Fastboot驱动一键安装工具