Spring技术——介绍、初识

从这篇博客正式开始学习 Spring 。


一、整个Spring技术学习的介绍

首先先对 Spring 做一个简单的认识,并从以下3个方面了解学习Spring 技术的意义:

(1)为什么要学习 Spring 技术?

1、它的市场的占有率很高,且是Java的开发界的" 宝物 "。现在的 Spring 技术是企业级开发的一个必备的技能、首选的技术。

2、Spring 技术是 JavaEE 开发必备技能,企业开发技术选型命中率>90% 。还有10%是早期的系统在维护。

3、Spring 技术主要解决了哪些问题?

  • 简化开发,降低企业级开发的复杂性。(因为目前的软件功能越来越多和复杂)
  • 框架整合,高效整合其他技术,提高企业级应用开发与运行效率。

(现在的企业级开发:大部分都是使用一些现成的技术组合在一起使用)

(2)学什么东西?

Spring 提供了两个大的核心技术—— IOC AOP

  • 简化开发

1、IOC

2、AOP

3、基于 AOP 的思想,又衍生出一个东西——事务处理

 它是Sping技术的一个亮点,它使事务编写更加高效,更简单而且更加功能更加强大。

  • 框架整合

它能够整合市面上现在主流的所有框架。

1、MyBatis

2、MyBatis-Plus

3、Struts (早年的)

4、Struts2

5、Hibernate

(3)如何去学习?
  • 首先先去学习 Spring 框架的整体的设计思想。基于思想,再去学习对应的基础操作。
  • 学习基础操作,思考操作与思想间的联系
  • 学习案例,熟练应用操作的同时,并在操作中快速的去体会思想的应用。来体会 Spring 框架的整体上为开发带来了什么便利。

二、初识 Spring

(1)了解 Spring 家族。
  • 官网:spring.io

在网页中很简洁,可以看到一个东西:Spring 技术可以做些啥?

比如说:

1、Web apps (可以做Web的开发)

2、Microservices (微服务)

3、Cloud (分布式系统开发)

以上这三点就已经占据 Java EE 的市场主流开发的九成。


  •  Spring发展到今天已经形成了一种开发的生态圈,Spring 提供了若干个项目,每个项目用于完成特定的功能。

1、Spring Framework 。简单看英文就是框架,这是 Spring 所有技术中的第一门技术。最早出现的技术也是它。它在" 全家桶 " 的地位非常高,其它所有的技术都是依赖它执行的。

(是一个底层的框架、设计型的框架,所有的东西都能放在它上面运行)

2、Spring Boot 。能够简化开发。使用这个技术可以在简化开发的基础上去加速开发。让我们原先的 Spring 开发变得更加的简单,书写更少的东西。

3、Spring cloud 。用在分布式开发的相关技术。


这上面三个技术基本上能够应对我们企业级开发的所有的主流开发工作了,当然其它 "全家桶" 里的其它技术也可以配合开发去使用去丰富解决方案。

4、Spring 并不是一个单技术,而是一个大家族。(其中有很多个技术...)

(2)了解 Spring 发展史。

1、Spring 1.0 是使用纯配置的形式进行开发的。

2、Spring 2.0 为了加速开发引入注解的功能。

3、Spring 3.0 已经演化出可以不写配置的开发模式。这样大幅度提高开发效率。

这就是后面学习的注解,注解是对配置格式的一个变形。而底层还是配置,但是学配置有利于我们学习注解、学注解有利于提高开发的效率。

4、Spring 4.0 在4.0的版本当中,Spring 紧跟JDK的版本升级,对个别的 API 进行了调整,所有 4.0和3.0 API 有一些变化。

5、Spring 5.0 全面支持 JDK 8 ,告诉我们要做 Spring 开发,JDK 版本必须是8以上。

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

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

相关文章

浅谈AI技术在不同经济体系的应用

#AI技术 #经济体系 #市场经济 #计划经济 近期有朋友提出了这么一个问题:“假设用AI技术来指导计划经济,是否能达到市场经济同样的效果?”我们今天就此问题浅谈我个人的看法,以下仅代表个人观点,有不到位的地方欢迎…

css之浏览器兼容性

css之浏览器兼容性 内核 内核代表作品 兼容的概念和原因 Hack的副作用 常见的CSS Bug 多个图片在一起,图片套个盒子 图片在IE浏览器上有蓝色边框 解决办法:给img加上 border:0 表单元素中距离顶部元素不一样 左边input 右边button 解决办法&#x…

【MySQL】——概念、逻辑、物理结构设计

💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux&#xf…

state和store的使用场景

结论 State:局部状态 Store:全局状态(可以使用Context、Redux 具体介绍 状态管理库如Redux通常是通过store来管理全局状态的。为了更好地理解局部状态和全局状态的管理,我们将分别详细解释如何在React中使用它们。 一、局部状…

盘点Elementor的8大缺点 为了安全果断放弃

Elementor作为一款流行的WordPress页面构建器,确实因其易用性和丰富的功能受到许多用户的欢迎。然而,如果它频繁曝出安全问题,并且你认为这些安全问题对你的网站构成严重威胁,那么考虑其他替代方案是明智的。以下是Elementor的一些…

umijs脚手架

node 16.9.1 注意node版本的问题 node 18.20.0 这个问题其实是node与中端连接出错,无法初始化TTY(终端设备),可以用cmd命令行来创建umi项目 nvm管理node https://github.com/coreybutler/nvm-windows/releases 这是nvm-window…

Idea Git中 unversioned files的处理

项目中,使用git commit命令可以查看当前所在的分支,以及当前改动的文件,可以使用快捷键Alt 0打开/关闭;如下图所示, 可以看到分成了两个不同的区域, Changes 表示有改动的文件,包括修改、新增…

mysql对VARCHAR和int的误解

VARCHAR: 你将VARCHAR类型的长度设置为255时,意味着该字段可以存储最多255个字符,不论这些字符是哪种语言的文字 tinyint int等 任何整数,只要类型定了,他表达的最大值和存储所占的空间就是确定的.不会因为你设置的长度不同而改变,所以正常情况下,我们…

Java高级编程技术与算法应用全解析

遗传算法 Java中的遗传算法 遗传算法通过模拟自然选择和遗传机制来寻找最优解。本文将介绍遗传算法的基本概念及其Java实现。 遗传算法的基本概念 遗传算法通过选择、交叉和变异等操作来优化问题。 示例代码:简单的遗传算法 import java.util.ArrayList; impo…

Python基础语法学习(工程向)-Stage1

输出的方式: print(fabscwdasd {num}) print(asbduwiu %d, a) print(asnidoian %d %d %d,a,b,c)不换行 print(asbdiuabw,end )输入 a input(输入) 只能输入字符串形式,如果相当做数字用则将其转化为数字 只有合法的数字才能转化成功 a int(input()…

厂里资讯之异步通知文章上下架

kafka及异步通知文章上下架 1)自媒体文章上下架 需求分析 2)kafka概述 消息中间件对比 特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高(主从)高(主从&#…

代码随想录算法训练营第41天|● 01背包问题 二维 ● 01背包问题 一维● 416. 分割等和子集

背包问题 二维01 背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 对于背包问题,有一种写法, 是使用二维数…

pydictor 字典工具的使用指南

在渗透测试和安全审计过程中,字典攻击是一种常见的密码破解手段。一个强大且灵活的字典生成工具可以显著提高破解效率。本文将详细介绍如何使用 pydictor,这是一个功能丰富的字典生成工具,广泛用于生成定制化的密码字典。 pydictor 简介 py…

Android网络性能监控方案 android线上性能监测

1 Handler消息机制 这里我不会完整的从Handler源码来分析Android的消息体系,而是从Handler自身的特性引申出线上卡顿监控的策略方案。 1.1 方案确认 首先当我们启动一个App的时候,是由AMS通知zygote进程fork出主进程,其中主进程的入口就是Ac…

Mysqld数据库管理

一.Mysqld数据库类型 常用的数据类型 int 整型 无符号[0-4294967296(2的32次方)-1],有符号[-2147483648(2的31次方)-2147483647]float单精度浮点 4字节32位double双精度浮点 8字节64位char固定长度的字符类型…

Matlab基础篇:数据输入输出

前言 数据输入和输出是 Matlab 数据分析和处理的核心部分。良好的数据输入输出能够提高工作效率,并确保数据处理的准确性。本文将详细介绍 Matlab 数据输入输出的各种方法,包括导入和导出数据、数据处理和数据可视化。 一、导入数据 Matlab 提供了多种方…

计算机网络:1概述、2物理层

目录 概述因特网网络、互连网(互联网)与因特网的区别与关系因特网发展的三个阶段因特网服务提供者(Internet Service Provider,ISP)因特网的标准化工作因特网的管理结构 三种交换电路交换分组交换报文交换 计算机网络性…

优化Spring Boot项目启动时间:详解与实践

目录 引言了解Spring Boot框架启动机制常见启动瓶颈分析优化策略 禁用不必要的自动配置使用Profile进行开发和生产环境区分精简依赖延迟加载Bean并行初始化Bean缓存数据源连接优化Spring Data JPA使用Spring Boot DevTools 通过性能测试工具分析和优化实战示例:一个…

Threejs-09、贴图的加载与环境遮蔽强度设置

1、创建文理加载器 let textureLoader new THREE.TextureLoader();2、加载贴图 // 加载文理 let texture textureLoader.load("./img/image.png") // 加载ao贴图 let aoMap textureLoader.load("./img/image.png");3、创建一个平面 let planeGeomet…

element el-select数据量过大 造成页面卡死情况(解决)

template <el-form-item><el-selectv-model"form.nameId"placeholder"姓名"clearablefilterableremotecollapse-tagsreserve-keywordmultiple:loading"loading":remote-method"remoteMethod"style"width: 100%"ch…