关于Spring总结(必看篇)

发布时间 - 2026-01-11 02:50:53    点击率:

Spring引入

传统的基于mvc的项目框架结构:Entity / dao / service / action

简单用户访问流程:/user.action ----> Tomcat (服务器创建Action、Service、dao

引出思考:

1. 对象创建创建能否写死?

2. 对象创建细节

对象数量

action 多个 【维护成员变量】

service 一个 【不需要维护公共变量】

dao 一个 【不需要维护公共变量】

创建时间

action 访问时候创建

service 启动时候创建

dao 启动时候创建

3. 对象的依赖关系

action 依赖 service

service依赖 dao

总结:Spring就是解决上面的问题的.简单来说,就是处理对象的创建的、以及对象的依赖关系,降低组件之间的耦合度,实现软件各层之间的解耦。

Spring介绍

•Spring是什么?

Spring是一个非常活跃的开源框架, 它是一个基于IOC和AOP来构架多层JavaEE系统的框架,它的主要目地是简化企业开发,Spring以一种非侵入式的方式来管理你的代码, Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring。

•具体描述Spring

1.轻量级:Spring 是非侵入性的>基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API,基础版本的Spring框架大约只有2MB.

组件/框架设计
侵入式设计
 引入了框架,对现有的类的结构有影响;即需要实现或继承某些特定类。
 例如: Struts框架
非侵入式设计
 引入了框架,对现有的类结构没有影响。
 例如:Hibernate框架 / Spring框架

2.依赖注入(DI --- dependency injection、IOC)

Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。
 a、IOC Inversion on Control , 控制反转
 其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源. 作为回应, 容器适时的返回资源. 而应用了 IOC 之后, 则是容器主动地将资源推送给它所管理的组件, 组件所要做的仅是选择一种合适的方式来接受资源. 这种行为也被称为查找的被动形式。可以简单的理解为对象的创建交给外部容器完成,这个就叫做控制反转.
 b、依赖注入, dependency injection
 IOC 的另一种表述方式:即组件以一些预先定义好的方式(例如: setter 方法)接受来自如容器的资源注入. 相对于 IOC 而言,这种表述更直接。
两者区别:
 控制反转: 解决对象创建的问题 【对象创建交给别人】
 依赖注入: 在创建完对象后,对象的关系的处理就是依赖注入 【通过set方法依赖注入】

3.面向切面编程(AOP --- aspect oriented programming)

a、采用了面向切面编程来实现很多基础但是与业务逻辑无关的功能的解耦,比如:事务管理、日志、权限验证等。
b、AOP 的主要编程对象是切面(aspect), 而切面模块化横切关注点.
c、在应用 AOP 编程时, 仍然需要定义公共功能, 但可以明确的定义这个功能在哪里, 以什么方式应用, 并且不必修改受影响的类. 这样一来横切关注点就被模块化到特殊的对象(切面)里.
关注点:
 重复代码就叫做关注点;
切面:
 关注点形成的类,就叫切面(类)!
 面向切面编程,就是指对很多功能都有的重复的代码抽取,再在运行的时候往业务方法上动态植入“切面类代码”。
切入点:
 执行目标对象方法,动态植入切面代码。
 可以通过切入点表达式,指定拦截哪些类的哪些方法; 给指定的类在运行的时候植入切面类代码。

4.容器:Spring 是一个容器, 因为它包含并且管理应用对象的生命周期

5.框架:Spring 实现了使用简单的组件配置组合成一个复杂的应用. 在 Spring 中可以使用 XML 和 Java 注解组合这些对象

6.一站式

Spring提供了一站式解决方案:
1) Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系
2) Spring Web Spring对web模块的支持。
  可以与struts整合,让struts的action创建交给spring
  spring mvc模式
3) Spring DAO Spring 对jdbc操作的支持
  【JdbcTemplate模板工具类】
4) Spring ORM spring对orm的支持:
  既可以与hibernate整合,【session】
  也可以使用spring的对hibernate操作的封装
5)Spring AOP 切面编程
6)SpringEE spring 对javaEE其他模块的支持

以上这篇关于Spring总结(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# Spring总结  # springmvc 参数绑定总结  # 不需要  # 给大家  # 可以使用  # 一站式  # 是一个  # 实现了  # 横切  # 你可以  # 多个  # 则是  # 它是  # 这也  # 可以通过  # 用了  # 希望能  # 要做  # 采用了  # 引入了  # 仅是  # 被称为 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 开心动漫网站制作软件下载,十分开心动画为何停播?  黑客入侵网站服务器的常见手法有哪些?  JavaScript如何实现倒计时_时间函数如何精确控制  三星网站视频制作教程下载,三星w23网页如何全屏?  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel如何优化应用性能?(缓存和优化命令)  详解阿里云nginx服务器多站点的配置  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  Laravel如何使用Service Container和依赖注入?(代码示例)  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  5种Android数据存储方式汇总  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Bootstrap整体框架之CSS12栅格系统  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  HTML 中动态设置元素 name 属性的正确语法详解  深圳网站制作培训,深圳哪些招聘网站比较好?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  微信小程序 闭包写法详细介绍  如何快速登录WAP自助建站平台?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  网易LOFTER官网链接 老福特网页版登录地址  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  香港服务器如何优化才能显著提升网站加载速度?  浅谈redis在项目中的应用  Python文件流缓冲机制_IO性能解析【教程】  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  如何选择可靠的免备案建站服务器?  nodejs redis 发布订阅机制封装实现方法及实例代码  如何用免费手机建站系统零基础打造专业网站?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  百度浏览器如何管理插件 百度浏览器插件管理方法  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  PHP正则匹配日期和时间(时间戳转换)的实例代码  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Laravel如何保护应用免受CSRF攻击?(原理和示例)  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?