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

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

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.lryc.cn/news/379752.html

相关文章:

  • Java热部署:让应用更新如丝般顺滑,告别繁琐重启!
  • 微信小程序毕业设计-小区疫情防控系统项目开发实战(附源码+论文)
  • PyTorch -- RNN 快速实践
  • SpringBoot 快速入门(保姆级详细教程)
  • 【第18章】Vue实战篇之登录界面
  • [C++]使用C++部署yolov10目标检测的tensorrt模型支持图片视频推理windows测试通过
  • 分享uniapp + Springboot3+vue3小程序项目实战
  • Ubuntu 24.04安装zabbix7.0.0图形中文乱码
  • MybatisPlus 调用 原生SQL
  • 1.SG90
  • 【yolov8语义分割】跑通:下载yolov8+预测图片+预测视频
  • 基于STM8系列单片机驱动74HC595驱动两个3位一体的数码管
  • Jlink下载固件到RAM区
  • Kotlin基础——Typeclass
  • DC-DC 高压降压、非隔离AC-DC、提供强大的动力,选择优质电源芯片-(昱灿)
  • GPT-4o的视觉识别能力,将绕过所有登陆的图形验证码
  • 【LinuxC语言】进程间的通信——管道
  • CompletableFuture 基本用法
  • 网页如何发布到服务器上
  • Jenkins简要说明
  • C# 比较基础知识:最佳实践和技巧
  • Ansible 自动化运维实践
  • 红队攻防渗透技术实战流程:中间件安全:IISNGINXAPACHETOMCAT
  • 如何卸载宝塔面板?
  • python入门基础知识(错误和异常)
  • 迈巴赫S480升级增强现实AR抬头显示hud比普通抬头显示HUD更好用吗
  • vivado、vitis2022安装及其注意事项(省时、省空间)
  • 【自动驾驶】ROS小车系统
  • mysql学习——多表查询
  • 【Gradio】如何设置 Gradio 数据框的样式