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

Spring笔记(1):概述

1、什么是Spring?

  • Spring是最受欢迎的企业级Java应用程序开发框架,使用它创建性能好、易于测试、可重用的代码。
  • Spring是一种轻量级的框架。
  • Spring框架的核心特性是开发任何Java应用程序,其目标是使得J2EE开发变得更容易,通过启用基于POJO模型来编程实践。

2、Spring的三层架构

  • 表现层:web层,其常见的设计模型为MVC(Moudle、View、Controller)
  • 业务层:service层
  • 持久层:dao层

3、Spring的优良特性

  • 非侵入式: 不依赖Spring的API。
  • 控制反转: IOC——Inversion of Control,是指Spring来控制创建新对象。
  • 依赖注入: DI——Dependency Injection,通过配置赋值,不需调用set方法设置。
  • 面向切面编程: AOP——Aspect Oriented Programming。
  • 容器: Spring是一个容器,它包含并且管理应用对象的生命周期。
  • 组件化: Spring实现了使用简单的组件配置组合成一个复杂的应用。在Spring中使用XML和Java注解组合这些对象。
  • 一站式: IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库。

4、Spring框架的优点

  • 可以使开发人员使用POJOs开发企业级的应用程序,可以选择使用一个稳定的应用程序服务器如Tomcat或其它的应用程序服务器。
  • Spring在一个单元模式中是有组织的,即使包和类的数量非常大,只需要热加载需要的工作包。
  • Spring容器能够加载更多的优秀开源框架技术。
  • 测试更容易,使用JavaBean-style POJOs,使用依赖注入注入测试数据。
  • Spring的web框架是一个MVC框架,MVC模式导致应用程序的不同方面分离,同时提供这些元素之间的松散耦合。
  • Model负责封装了应用程序数据,通常它们由POJO类组成。
  • View负责渲染模型数据,一般来说它生成客户端浏览器可以解释HTML输出。
  • Controller负责处理用户请求并构建适当的模型,并传递给视图进行渲染。
  • Spring封装了难度较高的JavaEE的API。
  • 轻量级的IOC容器
  • Spring提供一直的事务管理接口,可向下扩展到本地事务(使用一个单一数据库)并扩展到全局事务(如JTA)

5、依赖注入DI
依赖注入是控制反转的一种,当编写一个复杂的Java应用程序时,应用程序应该尽可能独立于其它java类,增加这些类可重用性。当单元测试时,可以使它们独立于其他类进行测试。

依赖注入是什么?
依赖: 是两个类之间相关联
注入: IOC携带类B的信息赋值给类A

如何实现依赖注入?
1、通过向构造函数传参实现
2、通过使用setter方法修改参数

6、面向切面编程AOP

  • 一个程序中跨越多个点的功能被称为横切关注点,这些横切关注点在概念上独立于业务逻辑,例如日志,声明事务,缓存等。
  • 在OOP中模块化的关键单元是类,而AOP中模块化的关键单元是方面。
  • AOP提供面向方面的程序设计,可以定义诸如方法拦截器和切入点等,从而实使实现功能的代码彻底解耦。

7、Spring框架的特点

  • 方便解耦,简化开发: 将所有对象的创建和依赖关系的维护交给Spring管理。
  • 方便集成框架: Spring不排斥其它框架,内部提供了Struts2,Hibernate,MyBatis等框架的支持。
  • 降低J2EE API的使用难度: Spring对JDBC、JavaMail、远程调用等API进行封装。
  • 方便测试: Spring支持JUnit4,可以方便通过注释测试Spring程序。
  • AOP编程的支持: Spring提供面向切面编程,可以实现对程序进行权限拦截和运行监控等功能。
  • 声明式事务的支持: 只需要通过配置完成对事务的管理。

相关文章:

Spring笔记(1):概述

1、什么是Spring? Spring是最受欢迎的企业级Java应用程序开发框架,使用它创建性能好、易于测试、可重用的代码。Spring是一种轻量级的框架。Spring框架的核心特性是开发任何Java应用程序,其目标是使得J2EE开发变得更容易,通过启用…...

工程机械焊接件焊接结构件三维扫描检测外观质量控制-CASAIM三维扫描检测仪

焊接已发展为制造业中的一种重要的加工方法,广泛应用于航空、航天、冶金、石油、汽车制造以及国防等领域。工程机械焊接件品种繁多、几何形状复杂,焊接件质量的好坏将直接影响到产品的使用寿命长短。对焊缝表面尺寸测量及评定表面焊缝缺陷时,…...

使用linux部署项目步骤

文章目录前言一、服务器环境配置二、数据库导入三、项目打包1、修改项目中的访问路径2、修改db.properties的数据库访问路径3、打包4、修改配置,启动服务四、测试总结前言 今天学习了在服务器中部署项目,记录一下 一、服务器环境配置 首先要安装VMware&…...

pt02-list-tuple-dir

容器类型 通用操作 数学运算符 (1) 用于拼接两个容器 (2) 用原容器与右侧容器拼接,并重新绑定变量 (3) * 重复生成容器元素 (4) * 用原容器生成重复元素, 并重新绑定变量 (5) !&#xff1a;依次比较两个容器中元素,一但不同则返回比较结果。< < > > 意…...

高端电器新十年,求解「竞速突围」

竞争激烈的高端电器品牌们&#xff0c;平时王不见王&#xff0c;但也有例外。海尔、博西、海信、创维、方太、老板等等近乎中国电器行业所有一线品牌副总裁级别以上高层&#xff0c;2月22日都现身于上海&#xff0c;来参加一场由红星美凯龙攒起来的高端电器局&#xff0c;2023中…...

[Android Studio] Android Studio使用keytool工具读取Debug 调试版数字证书以及release 发布版数字证书

&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea; Android Debug&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea; Topic 发布安卓学习过程中遇到问题解决过程&#xff0c;希望我的解决方案可以对小伙伴们有帮助。 &#x1f4cb;笔记目…...

2023年金三银四必备软件测试常见面试题1500问!!!【测试思维篇】

五、测试思维5.1 打电话功能怎么去测&#xff1f;我们会从几个方面去测试&#xff1a;界面、功能、兼容性、易用性、安全、性能、异常。1&#xff09;界面我们会测试下是否跟界面原型图一致&#xff0c;考虑浏览器不同显示比例&#xff0c;屏幕分辨率。2&#xff09;功能&#…...

推荐四款自用的电脑神器

作为一个经常鼓捣电脑的小编来说&#xff0c;无论是写文章、截图、办公方面都缺少不了一些好用的软件&#xff0c;今天就给大家盘点一些我推荐用的办公效率工具&#xff0c;让你的效率事半功倍。 写文章神器 以前写文章一直是在公众号编辑上直接写的&#xff0c;缺点就是格式有…...

CSDN 竞赛 32 期

CSDN 竞赛 32 期1、题目名称&#xff1a;传奇霸业2、题目名称&#xff1a;严查枪火3、题目名称&#xff1a;蚂蚁家族4、题目名称&#xff1a;运输石油小结1、题目名称&#xff1a;传奇霸业 传奇霸业&#xff0c;是兄弟就来干。 小春(HP a)遇到了一只黄金哥布林(HP x)。 小春每…...

【路径规划】基于前向动态规划算法在地形上找到最佳路径(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

spring boot maven打包jar包太大,怎么办?这个方法解决你的烦恼

在springboot maven项目中&#xff0c;有两种打包方式&#xff0c;一种是war包&#xff0c;一种是jar&#xff0c;今天我们讲一下jar的打包方式。但是在jar包打包只要我们发现&#xff0c;我们的项目jar太大了&#xff0c;每次上传到服务器的时候非常的慢&#xff0c;接下来我们…...

Spring之AOP理解及使用

文章目录AOP是什么AOPSpring的通知类型1.Before通知2. AfterReturning通知3.AfterThrowing通知4. After通知5. Around通知动态代理JDK动态代理CGLib动态代理动态代理的代码展示AOP使用切面类的配置最后大家好&#xff0c;我是Leo&#xff01;今天给大家带来的是关于Spring AOP的…...

微信小程序和webview使用postMessage交互

小程序和webview能交互&#xff0c;但是没有你想的那个完美小程序向webview传递参数只能使用url携带参数webview向小程序传递参数可以使用postMessage, 但是注意了&#xff0c;postMessage只会在特定的时机执行&#xff0c;请看官方文档由此可见&#xff0c;如果你想点击webvie…...

pytorch-自动求导机制,构建计算图进行反向传播,需要注意inplace操作导致的报错,梯度属性变化

PyTorch 作为一个深度学习平台&#xff0c;在深度学习任务中比 NumPy 这个科学计算库强在哪里呢&#xff1f;一是 PyTorch 提供了自动求导机制&#xff0c;二是对 GPU 的支持。由此可见&#xff0c;自动求导 (autograd) 是 PyTorch&#xff0c;乃至其他大部分深度学习框架中的重…...

【Project】项目管理软件学习笔记

一、前言使用Project制定项目计划步骤大致如下&#xff1a;以Project2013为例&#xff0c;按照上图步骤指定项目计划。二、实施2.1 创建空白项目点击文件——新建——空白项目&#xff0c;即完成了空白项目的创建&#xff0c;在此我把该项目保存为60mm项目管理.mpp&#xff0c;…...

【算法设计-分治思想】快速幂与龟速乘

文章目录1. 快速幂2. 龟速乘3. 快速幂取模4. 龟速乘取模5. 快速幂取模优化1. 快速幂 算法原理&#xff1a; 计算 311&#xff1a; 311 (35)2 x 335 (32)2 x 332 3 x 3仅需计算 3 次&#xff0c;而非 11 次 计算 310&#xff1a; 310 (35)235 (32)2 x 332 3 x 3仅需计算…...

Kafka(十一) 如何保证数据的不重复和不丢失

数据不丢失 1&#xff09;从生产端&#xff1a;acks -1&#xff0c;&#xff08;ack应答机制&#xff09;从生产端到节点端&#xff0c;当所有isr集合里的节点备份完毕后返回成功&#xff1b; 2&#xff09;从节点端&#xff1a;每个partition至少需要一个isr节点&#xff0…...

解决树莓派 bullseye (11) 系统无法通过 xrdp 远程连接的问题

我手上有一台树莓派 4B&#xff0c;使用官方镜像烧录器烧录老版本操作系统 buster (10) 时可以正常通过 Windows 远程桌面连接上&#xff0c;但换成最新的 bullseye (11) 系统后却无法正常连接远程桌面。 问题复现&#xff1a; 使用官方镜像烧录器烧录&#xff0c;配置用户名为…...

微信公众号历史作品定向采集

最近有遇到微信公众号历史作品采集的需求,这里做一下记录, 登录自己注册好的的微信公众号后台进入创作界面,点击右上角的引用: 弹出如下界面: 选择查找公众号文章,输入要查找的公众号: 回车: 同时就可以打开F12开始抓包,选择公众号点击进入: appmsg?action=li…...

Vue学习笔记(3)

3.1 计算属性和监视属性 3.1.1 计算属性 计算属性是一种计算值的方式&#xff0c;可以根据其他属性的值来动态地计算新的属性值。计算属性可以缓存计算结果&#xff0c;当依赖的属性发生改变时&#xff0c;才会重新计算。在Vue中&#xff0c;可以使用computed选项来定义计算属…...

Marshmallow 库

文章目录Marshmallow 库介绍使用序列化反序列化参数介绍schema参数fields 参数钩子函数内置验证器Meta 属性Marshmallow 库 介绍 marshmallow是一个用来将复杂的orm对象与python原生数据类型之间相互转换的库&#xff0c;简而言之&#xff0c;就是实现object -> dict&#…...

【BN层的作用】论文阅读 | How Does Batch Normalization Help Optimization?

前言&#xff1a;15年Google提出Batch Normalization&#xff0c;成为深度学习最成功的设计之一&#xff0c;18年MIT团队将原论文中提出的BN层的作用进行了一一反驳&#xff0c;重新揭示BN层的意义 2015年Google团队论文&#xff1a;【here】 2018年MIT团队论文&#xff1a;【h…...

re.sub()用法的详细介绍

一、前言 在字符串数据处理的过程中&#xff0c;正则表达式是我们经常使用到的&#xff0c;python中使用的则是re模块。下面会通过实际案例介绍 re.sub() 的详细用法&#xff0c;该函数主要用于替换字符串中的匹配项。 二、函数原型 首先从源代码来看一下该函数原型&#xf…...

【Python数据挖掘入门】2.2文本分析-中文分词(jieba库cut方法/自定义词典load_userdict/语料库分词)

中文分词就是将一个汉字序列切分成一个一个单独的词。例如&#xff1a; 另外还有停用词的概念&#xff0c;停用词是指在数据处理时&#xff0c;需要过滤掉的某些字或词。 一、jieba库 安装过程见&#xff1a;https://blog.csdn.net/momomuabc/article/details/128198306 ji…...

Meta利用视觉信息来优化3D音频模型,未来将用于AR/VR

我们知道&#xff0c;Meta为了给AR眼镜打造智能助手&#xff0c;专门开发了第一人称视觉模型和数据集。与此同时&#xff0c;该公司也在探索一种将视觉和语音融合的AI感知方案。相比于单纯的语音助手&#xff0c;同时结合视觉和声音数据来感知环境&#xff0c;可进一步增强智能…...

openlayers加载离线地图并实现深色地图

问题背景 我们自己一直使用的openlayergeoserver自己发布的地图&#xff0c;使用的是矢量地图。但是由于政府地图大都使用为天地图&#xff0c;所以需要将geoserver的矢量地图更改为天地图&#xff0c;并且依旧是搭配openlayers来使用。 解决步骤 一&#xff1a;加载离线地图&a…...

socket,tcp,http三者之间的区别和原理

目录 一、OSI模型也称七层网络模型 1、TCP/IP连接 1.1三次握手与四次挥手的简单理解&#xff1a;&#xff08;面试重点&#xff09; 1.2面试考题&#xff1a;如果已经建立了连接&#xff0c;但是客户端突然出现故障了怎么办&#xff1f; 1.3 socket、tcp、http三者之间有什…...

红日(vulnstack)1 内网渗透ATTCK实战

环境准备 靶机链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;sx22 攻击机系统&#xff1a;kali linux 2022.03 网络配置&#xff1a; win7配置&#xff1a; kali配置&#xff1a; kali 192.168.1.108 192.168.111.129 桥接一块&#xff0c;自定义网卡4 win7 1…...

ik 分词器怎么调用缓存的词库

IK 分词器是一个基于 Java 实现的中文分词器&#xff0c;它支持在分词时调用缓存的词库。 要使用 IK 分词器调用缓存的词库&#xff0c;你需要完成以下步骤&#xff1a; 创建 IK 分词器实例 首先&#xff0c;你需要创建一个 IK 分词器的实例。可以通过以下代码创建一个 IK 分…...

ROS1/2机器人操作系统与时间Time的不解之缘

时间对于机器人操作系统非常重要。所有机器人类的编程中所涉及的变量如果需要在网络中传输都需要这个数据结构的时间戳。宏观上&#xff0c;ROS1、ROS2各版本都有官方支持的时间节点。ROS时钟--支持时间倒计时小工具效果如下&#xff1a;如果要部署机器人操作系统&#xff0c;R…...

企业百度网站怎么做/seo零基础入门到精通200讲

码云链接 https://gitee.com/A5320/pair_programming_code 需求分析 实现一个命令行程序&#xff0c;要求&#xff1a; 1.自动生成小学四则运算题目(加、减、乘、除) 2.支持整数 3.支持多运算符&#xff08;比如生成包含100个运算符的题目&#xff09; 4.支持真分数 5.统计正确…...

如何用公司名称搜到公司网站/免费的推广平台

女朋友问我淘宝网国际站的地址是什么&#xff0c;她想看看海淘上面都有哪些东西&#xff0c;于是我把网址&#xff1a;https://world.taobao.com 发给了她。于是…… 首先介绍下到底什么是域名&#xff0c;然后再来介绍域名的各个组成部分。 域名 网域名称&#xff08;英语&a…...

阿里云的云服务器做网站用哪种/百度推广总部客服投诉电话

如果懂位的运算&#xff0c;看到下面这2个程序执行的结果&#xff0c;会很容易理解&#xff0c;如果像我这样的菜鸟&#xff0c;刚接触开始肯定也觉得晕晕的&#xff0c;| 这是什么运算符&#xff1f; |就是位的或运算符&#xff0c;下面还是用上面的程序来讲解一下&#xff0c…...

静乐县城乡建设局网站/黑马程序员培训机构在哪

https://www.jiguang.cn/ 文档 http://docs.jiguang.cn/ 极光推送安卓和ios 常遇见问题 1.ISO分开发环境还是测试环境 2.看用户是否在极光绑定 3.app登录&#xff0c;如果同一账号多人登录只会发一个 4.给多人发送(只能发送相同内容&#xff0c;不同内容要一个个发送)转载于:ht…...

河南两学一做网站/网络营销的概念和特点是什么

1.双击打开“我的电脑”—双击打开“D盘”,单击右键下拉菜中选择“新建”—“文件夹”&#xff0c;右键“新建文件夹”选择“重命名”命名为“练习”&#xff0c;双击打开“练习”文件夹; 右键分别空白处右键下拉菜中选择“新建”—“文件夹”得到“新建文件夹”和“新建文件夹…...

临沂建站公司/网站排名靠前的方法

你好&#xff01;首先&#xff0c;你说的Java窗口是指JFrame或者Frame其次&#xff0c;你说的窗口背景颜色是指直接调用JFrame或者Frame的setBackground(Color color)方法设置后显示出来的颜色。其实&#xff0c;你的想法是正确的&#xff0c;但是我想提醒你的是&#xff0c;你…...