2024-6-18(沉默Spring,Springboot)

news2024/7/6 19:24:09

1.Spring小结

我们最后再来体会一下用 Spring 创建对象的过程:

通过 ApplicationContext 这个 IoC 容器的入口,用它的两个具体的实现子类,从 class path 或者 file path 中读取数据,用 getBean() 获取具体的 bean instance。

那使用 Spring 到底省略了我们什么工作?

答:new 的过程。把 new 的过程交给第三方来创建、管理,这就是「解藕」。

Spring 也是用的 set() 方法,它只不过提供了一套更加完善的实现机制而已。

而说到底,底层的原理并没有很复杂,只是为了提高扩展性、兼容性,Spring 提供了丰富的支持,所以才觉得源码比较难。

因为框架是要给各种各样的用户来使用的,它们考虑的更多的是扩展性。如果让我们来实现,或许三五行就能搞定,但是我们实现的不完善、不完整、不严谨,总之不高大上,所以它写三五十行,把框架设计的尽可能的完善,提供了丰富的支持,满足不同用户的需求,才能占领更大的市场啊。

2.Lombok是在编译阶段实现了对Java代码的增强

3.Spring Data JPA:Java持久化api

Spring Data 是 Spring 提供的一个操作数据的框架,Spring Data JPA是 Spring Data 下的一个基于 JPA 标准的操作数据的模块。

JPA(Java Persistence API)是 Java 亲妈 Sun 公司提出的一套 Java 持久化规范。所谓规范,就是只定义标准,不提供实现(API抽象接口)。

JPA 的提出主要是为了整合市面上已有的 ORM 框架,比如说 Hibernate、EclipseLink、Mybatis 等。官方觉得你们搞框架可以,但不要乱搞,得按照我的标准来。

Sun引入新的JPA ORM规范出于两个原因:

其一,简化现有Java EE和Java SE应用开发工作;

其二,Sun希望整合ORM技术,实现天下归一

总结一下就是:

  • JPA 是规范,统一了规范才便于使用。
  • Hibernate等ORM框架都是 是 JPA 的实现,是一套成熟的 ORM 框架。
  • Spring Data JPA 是 Spring 提出的,它增加了一个抽象层,用来屏蔽不同 ORM 框架的差异。

 4.@Autowired和@Resource

@Autowired 是 Spring 提供的注解,@Resource 是 Java 提供的注解。@Resource 是 byName 自动装配,@Autowired 是 byType 自动装配,当有两个类型完全一样的对象时,@Autowired 就会出错了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1850607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验7 虚拟局域网VLAN

一、实验目的 1.学习如何划分VLAN; 2.验证划分VLAN的作用; 3.学习如何用命令行创建VLAN,将端口划分到VLAN,设置端口类型。 二、实验要求 1.使用Cisco Packet Tracer仿真平台; 2.观看B站湖科大教书匠仿真实验视频&am…

每日优秀影视分享❗❗

一、热门电影推荐 《头脑特工队 2》:皮克斯再次为观众带来了这部经典动画的续集。 影片讲述了刚步入青春期的小女孩莱莉脑海中的复杂情绪进行的一场奇妙冒险。 这部电影不仅延续了前作的优秀品质,更在情感深度和视觉呈现上有了进一步的提升。 《艾尔登…

【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow

一、介绍 球类识别系统,本系统使用Python作为主要编程语言,基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集 ‘美式足球’, ‘棒球’, ‘篮球’, ‘台球’, ‘保龄球’, ‘板球’, ‘足球’, ‘高尔夫球’, ‘曲棍球’, ‘冰球’,…

openEuler23.09安装Postgresql16.3

openEuler23.09安装Postgresql16.3,基于源代码编译安装PostgreSQL的基本步骤 一、PostgreSQL数据库服务环境搭建 操作系统版本 openEuler-23.09-x86_64-dvd.iso ,安装步骤此处省略。。。 最常用且直接的方法来查看openEuler的版本号是查看/etc/os-rel…

[Redis]缓存常见问题解决(缓存穿透、击穿、雪崩一文解决!通俗易懂、代码实战!手把手教你解决缓存问题三兄弟!)

Redis常见问题解决 要求 只用一种缓存技术,从实验点中挑一些试验进行试验原理。 1.缓存原理 目标:理解缓存的基本原理和工作机制。 实验步骤: 阅读各缓存技术机制的文档和官方资料。实现一个简单的应用程序,模拟数据的读写和…

AD导出Gender、坐标文件、BOM

导出Gender 方式一 等输出完成后,将工程文件下的OutPut文件打包发给厂家即可 方式二 导出外观、层 导出孔 导出坐标文件 导出BOM 备注 外观尽量用机械层 参考 https://blog.csdn.net/lwb450921/article/details/123141335

Python发送HTML邮件有哪些步骤?怎么设置?

Python发送HTML邮件如何实现?Python发送邮件的策略? HTML邮件不仅可以包含丰富的文本格式,还可以插入图片、链接和其他多媒体内容,从而提升邮件的美观性和功能性。AokSend将详细介绍Python发送HTML邮件的主要步骤,帮助…

动态规划:基本概念

Dynamic Programming 动态规划(Dynamic Programming, DP) 是一种算法设计技巧,通常用来解决具有重叠子问题和最优子结构性质的问题。它通过将问题分解为更小的子问题,逐步解决这些子问题并将结果存储起来,以避免重复计…

C++拷贝构造函数、运算符重载函数、赋值运算符重载函数、前置++和后置++重载等的介绍

文章目录 前言一、拷贝构造函数1. 概念2. 特征3. 编译器生成默认拷贝构造函数4. 拷贝构造函数典型使用场景 二、运算符重载函数三、赋值运算符重载函数1. 赋值运算符重载格式2. 赋值运算符只能重载成类的成员函数不能重载成全局函数3.编译器生成一个默认赋值运算符重载4. 运算符…

上交商汤联合提出一种虚拟试穿的创新方法,利用自监督视觉变换器 (ViT) 和扩散模型

上交&商汤联合提出一种虚拟试穿的创新方法,利用自监督视觉变换器 (ViT) 和扩散模型,强调细节增强,通过将 ViT 生成的局部服装图像嵌入与其全局对应物进行对比。虚拟试穿体验中细节的真实感和精确度有了显着提高,大大超越了现有…

使用粒子滤波(particle filter)进行视频目标跟踪

虽然有许多用于目标跟踪的算法,包括较新的基于深度学习的算法,但对于这项任务,粒子滤波仍然是一个有趣的算法。所以在这篇文章中,我们将介绍视频中的目标跟踪:预测下一帧中物体的位置。在粒子滤波以及许多其他经典跟踪…

Antd Table 表格 拖拽列宽

antd 的表格组件的列宽,是通过width属性去初始化的,有时候渲染的内容不固定,这个宽做不到通用所以研究怎么实现表格列宽拖动,主要的实现步骤如下: 使用table的components API修改表格头部为 react-resizable提供的组件…

专业技能篇---计算机网络

文章目录 前言计算机网络基础一、网络分层模型 HTTP一、从输入URL到页面显示发生了什么?二、Http的状态码有哪些?三、 HTTP与HTTPS有什么区别?四、URI 和 URL 的区别是什么?五、Cookie和Session有什么区别?六、GET与POST WebSock…

基于机器学习和深度学习的C-MAPSS涡扇发动机剩余寿命RUL预测(Python,Jupyter Notebook环境)

涡扇发动机全称为涡轮风扇发动机,是一种先进的空中引擎,由涡轮喷气发动机发展而来。涡扇发动机主要特点是首级压缩机的面积比涡轮喷气发动机大。同时,空气螺旋桨(扇)将部分吸入的空气从喷射引擎喷射出来,并…

尚品汇-(四)

(1)商品的基本知识 1.1基本信息—分类 一般情况可以分为两级或者三级。咱们的项目一共分为三级,即一级分类、二级分类、三级分类。 比如:家用电器是一级分类,电视是二级分类,那么超薄电视就是三级分类。…

一单1800,这个项目凭什么这么火?

AI变现营八期学员一单1800成功拿下,这还是开营不到一周的结果! AI代写这个项目为什么现在越来越火? 第一点原因就是因为AI的火爆,让传统代写行业变现效率增加了N倍,普通人可以入局,只要会调教AI就可以了&am…

Win11下安装VS2022失败的解决办法

前几天我把我的HP Z840的操作系统换成了Win11,在重装VS2022时遇到了麻烦,提示无法安装 Microsoft.VisualStudio.Devenv.Msi。 查看安装日志提示:Could not write value devenv.exe to key \SOFTWARE\Microsoft\Internet Explorer\Main\Featur…

基于JSP的交通事故档案管理系统

开头语:你好,我是计算机学长猫哥,如果你对系统有更多的期待或建议,欢迎随时联系我。 开发语言:Java 数据库:MySQL 技术:JSPJava 工具:ECLIPSE、Tomcat 系统展示 首页 管理员界…

基于YOLOv5的火灾检测系统的设计与实现

基于YOLOv5的火灾检测系统的设计与实现 概述系统架构主要组件代码结构功能描述YOLOv5检测器视频处理器主窗口 详细代码说明YOLOv5检测器类视频处理类主窗口类 使用说明环境配置运行程序操作步骤 检测示例图像检测视频检测实时检测 数据集介绍数据集获取数据集规模 YOLOv5模型介…

vscode中同一页面使用批量替换

在vscode中像word中那样批量替换 首先搜索要替换的内容快捷键是ctrlf 然后输入你要搜索的内容 第二个框中输入你要替换成的内容 点击全部替换,就可以了