Spring的控制反转和依赖注入
Spring的官网:https://spring.io/
Struts与Hibernate可以做什么事?
Struts,
Mvc中控制层解决方案
可以进行请求数据自动封装、类型转换、文件上传、效验…
Hibernate,
持久层的解决方案;
可以做到,
把对象保存到数据库,
从数据库中取出的是对象。
传统的开发模式
基于mvc模式进行项目开发;
基于mvc的项目框架结构:
Entity / dao / service / action
为什么引入Spring:
思考:
1. 对象创建创建能否写死?
2. 对象创建细节
对象数量
action 多个 【维护成员变量】
service 一个 【不需要维护公共变量】
dao 一个 【不需要维护公共变量】
创建时间
action 访问时候创建
service 启动时候创建
dao 启动时候创建
3. 对象的依赖关系
action 依赖 service
service依赖 dao
=======================================================
总结:
spring就是解决上面的问题的!
简单来说,就是处理对象的创建的、以及对象的依赖关系!
1:框架设计:
1.1:侵入式设计:引入了框架,对现有的类的结构有影响,即需要实现或者继承某些特定类
例如:Struts2框架
1.2:非侵入式设计:引入了框架,对现有的类结构没有影响
例如:Hibernate框架,Spring框架
2:Spring框架
Spring概述:可以解决对象创建以及对象之间依赖关系的一种框架。且可以很好的和其他框架一起使用,
如Spring和Hibernate,Spring和Struts2,其实通俗点讲Spring就是起到一种整合的作用,
如是一座桥梁,连接了Hibernate和Struts2;
2.1:控制反转(Inversion of Confrol):
对象的创建交给外部容器完成,这个就叫做控制反转
2.2:依赖注入(dependency injection):
处理对象的依赖关系
2.3:控制反转和依赖注入的区别:
控制反转:解决对象创建的问题[对象创建交给别人即ioc容器];
依赖注入:在创建完对象后,对象的关系的处理就是依赖注入[通过set方法依赖注入];
2.4:AOP面向切面编程
面向切面编程:切面,简单的说来可以理解为一个类,由很多重复代码形成的类。
例如:事务,日志,权限。
3:Spring提供了一站式解决方案:
3.1:SpringCore:
Spring的核心功能,IoC容器,解决对象创建以及依赖关系
3.2:SpringWeb:
Spring对web模块的支持:
(1)可以与struts2整合,让struts2的action的创建交给Spring
(2)Spring mvc模式
3.3:SpringDao:
Spring对jdbc操作的支持[JdbcTemplate模板工具类]
3.4:SpringORM:
Spring对orm的支持:
(1):既可以与Hibernate整合
(2):也可以使用Spring对Hibernate操作的封装
3.5:SpringAOP:
面向切面编程
3.6:SpringEE:
Spring对JavaEE其他模块的支持
框架啊,东西多而杂,耐着性子慢慢消化~~~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?