Spring 基础教程之一:Spring简介

2023-11-03



明天就要讲传说中的spring了,不知道它是否像老师说的那样简单且神奇,spring的英文翻译是春天,泉水,弹簧,活跃的意思,不知道像我们这样的距找工作还有50天左右的人来说,我们的春天是否到了,在这个春天我们是否能够喝上甘甜的泉水,然后像弹簧一样越施压越是那么活跃。所以首先就先了解一下关于明天的spring吧。走你~~~

Spring入门概念

  spring是什么?

Spring Framework(简称Spring)J2EE应用程序框架,不过,更严格地讲它是针对Bean的生命周期进行管理的轻量级容器(Lightweight container),可以单独利用Spring构筑应用程序,也可以和StrutsWebwork等众多Web应用程序框架组合使用,并且可以与Swing等桌面应用程序API组合。所以Spring并不仅仅只能应用在J2EE中,也可以应用在桌面应用及小应用程序中。针对Spring开发的组件不需要任何外部库。

Spring是一个开源的控制反转和面向切面的容器框架,主要目的是简化企业开发

1)控制反转

         所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。

         使用IOC对象是被动接受依赖的类而不是主动地去找

2)依赖注入

所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。

  为什么要使用spring

1)降低组件的耦合度,实现软件各层之间的解耦

2)可以使用容器提供的众多服务

3)容器提供单例模式支持

4)容器提供了AOP技术(面向切面的编程),利用它很容易实现如权限拦截、运行期监等功能

5)容器提供了众多辅助类,可加入开发  hibernateTemplate

6)对于主流的应用框架提供了支持

7)使用spring不需要手动控制事务,用面向切面实现,在执行的方法中会自动的执行事务

8)不需要处理复杂的事务传播行为

9)容器包含管理系统对象的生命周期和配置

置组合起来的

  Spring是一个轻量级的IocAOP容器框架

         Struts2是轻量级的,也即是非侵入式的

对于spring容器,它提供了很多服务,但这些服务并不是默认为应用打开的,应用需要某种服务,还需要指明使用该服务,如果应用使用的服务很少,如:只使用了spring核心服务,那么我们可以认为此时应用属于轻量级的,如果应用使用了spring提供的大部分服务,这时应用就属于重量级。目前EJB容器就因为它默认为应用提供了EJB规范中所有的功能,所以它属于重量级。

spring框架使用简单组件配置组合成一个复杂的系统,系统中的对象是通过xml文件配

 

  spring7个模块

         核心容器

         应用上下文模块

         AOP模块

         JDBCDAO

         OR映射  Object Relication

Web模块

         MVC框架

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring 基础教程之一:Spring简介 的相关文章

  • IT项目管理——07.项目成本管理

    作业1 作业2 作业3 a 成本偏差CV EV AC 10000 进度偏差SV EV PV 20000 成本绩效指数CPI EV AC 1 11 进度绩效指数SPI EV PV 0 83 b 进度绩效指数小于1 落后于进度 正的成本偏差 完
  • 04JVM_语法糖

    一 编译期处理 语法糖java编译器把 java源码编译为 class字节码的过程中 自动生成和转换的一些代码 添加的class字节码 减轻程序员的负担 1 默认构造器 默认构造器没有写任何的构造方法 但经过编译器编译成字节码过程中 会加上
  • 图像采样方法

    最邻近插值 Nearest Neighbour Resampling 这种插值方法根据源图像和目标图像之间的相对位置来将目标图像上像素确定为相对源图像上相对位置的像素值 对于任意一幅源图像来说 假设放大后目标图像的宽为Dw高为Dh 任意目标
  • 计算机网络——应用层の选择题整理

    网络应用模型 1 下面关于客户 服务器模型的描述 存在错误 a 客户端必须提前知道服务器的地址 而服务器不需要提前知道客户端的地址 b 客户端主要实现如何显示信息与收集用户的输入 而服务端主要实现数据的处理 c 浏览器显示的内容来自服务器
  • Tensorflow深度学习之二十:CIFAR-10数据集介绍

    一 CIFAR 10 CIFAR 10数据集由10类32x32的彩色图片组成 一共包含60000张图片 每一类包含6000图片 其中50000张图片作为训练集 10000张图片作为测试集 CIFAR 10数据集被划分成了5个训练的batch
  • matlab神经网络Narxnet非线性自回归神经网络

    Narxnet 非线性自回归神经网络 用法 narxnet inputDelays feedbackDelays hiddenSizes trainFcn inputDelays 输入延时 Row vector of increasing
  • 统计学习方法- 感知机

    感知机是二分类的线性分类模型 其输入为实例的特征向量 输出为实例的类别 取 1和 1二值 1 感知模型 定义 2 感知机学习策略 数据集的线性可分性 感知机学习策略是假设空间中选取使损失函数最小的模型参数w b即感知模型 3 感知机学习算法
  • android activity 切换流程

    一般来说 Android程序主压迫由下列4部分组成 Activity Broadcast Intent Receiver Service Content Provider 本文重点讲解Activity这部分内容 1 Activity基本介绍
  • Go入门教程

    什么是Go语言 Go 又称 Golang 是 Google 的 Robert Griesemer Rob Pike 及 Ken Thompson 开发的一种静态强类型 编译型语言 Go 语言语法与 C 相近 但功能上有 内存安全 GC 垃圾
  • 102263 - ArabellaCPC 2019(部分)解题报告

    link A Is It Easy easy include
  • 使用随机森林回归填补缺失值

    文章目录 一 概述 二 实现 1 导入需要的库 2 加载数据集 3 构造缺失值 4 使用0和均值填充缺失值 5 使用随机森林填充缺失值 6 对填充好的数据进行建模 7 评估效果对比 一 概述 现实中收集的数据 几乎不可能是完美无缺的 往往都
  • 合并两个有序数组(给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。)

    void merge int nums1 int nums1Size int m int nums2 int nums2Size int n 定义 让数组从后往前遍历 int i m 1 int j n 1 int len m n 1 如果
  • Python中安装Beautiful Soup成功后出现No module named 'bs4'

    此篇文章主要用来解决在终端中完成了beautiful soup的成功安装 但是在IDLE中依然出现以下错误 gt gt gt from bs4 import BeautifulSoup Traceback most recent call
  • 我的大学职业规划(大一时的思考)

    我的大学职业规划 文章目录 我的大学职业规划 1 计算机科学与技术专业的发展方向 不仅限于计科 2 大学四年应该做什么 3 学校竞赛与证书考核 4 编程学习的境界 以C 举例 5 考研与就业 考公与参军的抉择 写作时间 2021 5 28
  • 学会这八个技术,你离BAT大厂不远了

    红人榜第七期来咯 本期干货 HTTP 本周最受关注的技术关键词TOP8 往下看吧 在如今这个时间和知识都是碎片化的时代 C站根据C1 C4认证的成长路径 进行知识细化整理 形成系统化的知识图谱 小编根据C1认证的成长路径整理了100篇HTT
  • Linux下Gitee的user和email配置,查看配置信息命令

    Linux下Gitee的user和email配置 查看配置信息命令 查看配置信息 git config l 配置邮箱 git config global user email email 配置用户名 git config global us

随机推荐

  • STM32CUBEMX配置教程(二)时钟等内部参数配置

    STM32CUBEMX配置教程 二 时钟等内部参数配置 基于STM32H743VI 使用STM32CUBEMX两年了 始终觉得这个工具非常的方便 但因为不是经常使用 导致有些要点总是会有些遗忘 因此写下这一系列教程以供记忆 顺便让我这个大萌
  • Python 打造最强表白程序(源码)

    此程序结合数据抓取 微信自动发消息 定时任务 实现一个能每天自动定时给你心爱的 ta 发送 你们相识相恋天数 情话 我爱你的图片 具体的消息如下 每天发送的消息格式如下 message 亲爱的 早上好 今天是你和 Koc 相恋的第 天 今天
  • C++性能测试工具——gperftools的安装

    一 软件安装说明 gperftools的安装有两种方式 一种是源码方式 一种是直接安装模式 这里使用源码安装模式 原因是使用直接安装模式比较简单 安装此软件需要先安装libunwind这个软件 所以这里需要通过源码方式安装libunwind
  • 【机器学习】支持向量机【上】硬间隔

    有任何的书写错误 排版错误 概念错误等 希望大家包含指正 在阅读本篇之前建议先学习 机器学习 拉格朗日对偶性 机器学习 核函数 由于字数限制 分成两篇博客 机器学习 支持向量机 上 硬间隔 机器学习 支持向量机 下 软间隔与核函数 支持向量
  • CSS布局flex布局 对齐 等分 均分 详解

    一切都始于这样一个问题 怎样通过 CSS 简单而优雅的实现水平 垂直同时居中 记得刚开始学习 CSS 的时候 看到float属性不由得感觉眼前一亮 顺理成章的联想到 Word 文档排版中用到的的左对齐 右对齐和居中对齐 然而很快就失望的发现
  • 【leetcode】1143.最长公共子序列

    leetcode 1143 最长公共子序列 题目 思路 代码 复杂度 题目 leetcode原题链接 给定两个字符串 text1 和 text2 返回这两个字符串的最长 公共子序列 的长度 如果不存在 公共子序列 返回 0 一个字符串的 子
  • 如何快速查看并定位网页元素代码

    如何快速查看并定位网页元素代码 目的 可以迅速得找出一个网页中对应元素的html代码 1 首先我们打开一个网页 比如 百度首页 2 打开后我们会看到很多的文字链接以及按钮链接 那么我们找到我们想要查看的元素的文字或者按钮 3 我们这里以 百
  • @Cacheable注解属性介绍

    本文目录 1 value cacheNames 属性 2 key属性 3 keyGenerator 属性 4 cacheManager 属性 5 cacheResolver 属性 6 condition 属性 7 unless 属性 8 s
  • C++导出EXCEL开源库xlslib库使用心得

    使用教程 第一步 下载xlslib库 本文建立在xlslib2 5 0版本基础上 下载地址xlsLib download SourceForge net 第二步 切换到解压文件目录xlslib build msvc2008 打开项目xlsl
  • linux查询jvm运行内存使用情况,在Linux下获取正在运行的JVM的总使用内存

    您可以运行 ps aux grep java 这将显示包含在其推出的字符串java的每个应用程序的内存使用情况 这应该是大多数 如果不是所有的Java应用程序 从我的服务器的输出如下 servername servername ps aux
  • 超过飞飞系列-ZYNQ之FPGA学习2.1Verilog语法

    一 VHDL Verilog C语言区别 VHDL 硬件描述语言 美军开发 相对难 不直观 需要专业培训 欧洲发展较好 Verilog 硬件描述语言 设计群体广泛 资源成熟 中国多采用 并行处理运行 C 软件语言 经过C的单片机程序需取码
  • 简单工厂(Simple Factory)

    文章目录 1 代码示例 2 简单工厂模式的定义 实现意图 工厂模式 通过把创建对象的代码包装起来 做到创建对象的代码与具体的业务逻辑代码相隔离的目的 工厂模式可以细分为 简单工厂模式 工厂方法模式 抽象工厂模式 1 代码示例 include
  • servlet实现图片的上传

    servlet实现图片的上传 我们通常说的上传图片 是将图片上传到服务器上面 本篇以tomcat为例 实现简单的本地图片上传服务器 一 图片的上传需要引入两个jar包 commons fileupload 1 4 jar 下载地址 http
  • 深度详解 View.post() 为何能够获取到 View 的宽高值?

    文章目录 1 简介 1 1 问题描述 1 2 结果展示 2 源码分析 2 1 View post 方法添加任务 2 2 HandlerActionQueue post 方法添加任务 2 3 探究 AttachInfo 的由来 2 3 1 A
  • 爬取在线论坛帖子:使用 Python 获取帖子及评论

    在这篇博客中 我们将学习如何使用 Python 编写一个网络爬虫 从一个在线论坛 例如 Reddit 中获取帖子及其评论 我们将使用 requests 和 BeautifulSoup 库来实现这个功能 文章将包括以下内容 目录 1 爬虫的基
  • 重写、覆盖、重载、隐藏、多态几个概念的区别分析

    override gt 重写 覆盖 overload gt 重载 polymorphism gt 多态 override是重写 覆盖 了一个方法 以实现不同的功能 一般是用于子类在继承父类时 重写 重新实现 父类中的方法 成员函数的重载 o
  • 论文阅读:CLIP2Video: Mastering Video-Text Retrieval via Image CLIP

    动机 之前的大多都是试图从大规模的视频文本数据集中提取视频的时空特征以及视频和语言之间的多模式交互 作者将在图像语言中预训练的模型迁移到视频文本检索任务中 而之前这种使用这种方式的工作大多都是基于证明这种迁移学习是有效的 以验证CLIP模型
  • [BABEL] Note: The code generator has deoptimised the styling of "unknown" as it exceeds the max of "

    BABEL Note The code generator has deoptimised the styling of unknown as it exceeds the max of 500KB babelrc文件添加 compact
  • 构建Python pandas基于SSH远程MySQL和PostgreSQL的数据分析

    如果您无法从外部环境直接访问数据库 则可能需要SSH隧道来查询它 在这篇文章中 我将向您展示如何通过SSH连接并查询MySQL数据库到Pandas数据框 可以将相同的代码应用于连接到其他数据库 例如PostgreSQL 假设您的数据库托管在
  • Spring 基础教程之一:Spring简介

    明天就要讲传说中的spring了 不知道它是否像老师说的那样简单且神奇 spring的英文翻译是春天 泉水 弹簧 活跃的意思 不知道像我们这样的距找工作还有50天左右的人来说 我们的春天是否到了 在这个春天我们是否能够喝上甘甜的泉水 然后像