javaEE进阶 -初识框架

news2025/1/11 2:24:44

目录

1.为什么要学框架?

框架的优点展示

2、项目的开发

2.1 Servlet 项目的开发

2.2 Spring Boot 项目开发

3 、Spring Boot编写代码

4、 Spring Boot 运行项目

5、验证程序

6、发布项目 

主要讲解 四个框架。

1、Spring
2、Spring Boot
3、Spring NVC
4、MyBatis

目前所有公司的项目,基本上全部是使用 Spring 项目。

MyBatis 是用来 代替 JDBC 编程。JDBC 是 Java 提供的一组 用来 操作数据库 的 API。
但是!JDBC 使用起来非常繁琐。而且重复的代码太多了!
一共五个步骤:
1、获取数据源
2、与数据建立连接
3、编写 SQL 语句。
4、执行SQL
5、此时 SQL 已经执行完毕,然后需要我们去释放资源

 你之前在 数据库客户端是怎么操作的,MyBatis 就是怎么操作的!
 

1.为什么要学框架?

1、学习框架相当于从“小作坊”到“工厂”的升级,⼩作坊什么都要自己做,工厂是组件式装配,特点就是高效。

说白了,小作坊就是什么都要自己做!【全栈程序员(复合型人才 )】
而且 品质 无法得到 保证!                  【每个人的代码质量是不一样的】
今天是师傅做,质量可以得到保证。   【老手】
明天可能就是学徒来做,质量可能就得不到保证。【新手】

而工厂,就是专人专用。
每个人只需要负责一件事,只要求把你这件事做好。
其它的,都不要管!【比如:只让你做关于客户端的代码,其它的,不用你管。】
而且一件事做得多了,熟练度会快速上升。【熟能生巧】
无论是 品质,还是效率,都可以得到提升!


2、 框架更加易用、简单且高效。

想象一下,如果我们自己之前要做 判空 的话,要这么判空呢?
假设,这个参数是从 前端传过来的。
现在我们要对参数 进行判断,判断参数是否为 null(空)?
如果为空,我们要构造一个错误信息,并把错误信息返回个前端。
但是,这是非常非常原始的做法。

如果我们使用了 框架 ,我们就可以在数据传输过来之后,定义一个 对象。
然后,给这个对象加个注解(类似 override,后面讲的)。
如果你给我传输过来的数据为null,那么,我就返回你定义的 注解后面的一个注释 “比如:姓名不能为空”。
这就 OK了,代码不用写。
你就直接 写一行注释 放在 那之后,然后,那些判断的,返回的 代码,就都不用写。
方法就是:加一个注解,然后加一个错误提示,放在那里,就OK了。
Spring 会帮我们自动进行 判断数据,返回数据,以及数据格式,都是一手包办的!
这就是它的一个易用性的体现。
不需要过多的操作,即可实现效果。
后面,我会写个简单的 Spring 代码,让你们对比一下。
看看 框架写的代码,相比于 servlet的代码,简易多少。

不要害怕,Spring的学习 比 servlet 要简单!
越高级的框架,它使用起来越简单。
servlet 的学习,只是帮助你打好基础。
帮助你更好的(理解 / 学习 ) Spring的代码。

注意!我们是学习怎么使用 Spring 框架。
而不是实现一个 Spring框架。
实现一个 Spring 框架,是一件极其难的事情!!! 

框架的优点展示

使⽤ Spring Boot 项⽬演示框架相⽐于 Servlet 所具备的以下优点:

1、 ⽆需配置 Tomcat,点击“运⾏”按钮就可以运⾏项⽬,Spring Boot 内置了 Web 容器(可直接运⾏)。
2、 快速添加外部 jar 包(依赖)。
3、 快速发布项⽬(使⽤ java -jar ⽅式就可以发布)。
4、 对象⾃动装配。
5、 …

使⽤ SpringBoot 和 Servlet 对⽐,演示⼀个⽤户添加的案例,展示以上优点。

注意:下⾯的案例⽆需掌握,主要是看我演示即可,后⾯会分模块详细讲。
主要是有个印象:用框架写一个代码有多简单方便。 

2、项目的开发

2.1 Servlet 项目的开发

我这里就列举 进行 Servlet 项目的开发需要哪几个步骤。
就不具体实现了。

因为,通过 实现的步骤,我们就可以清楚的感受到 两者之间差异。
servlet 项目 实现的步骤:
1、创建一个 maven 项目
2、在 pom.xml 中 引入相关依赖
3、创建特定的目录
4、编写代码
5、打包
6、部署
7、验证程序
8、发布【使用 (Tomcat) 进行 程序的部署和发布】

Servlet 痛点分析

1、添加外部 jar 不⽅便,容易出错,⽐如添加了⼀个不匹配的外部 jar 版本;
2、运⾏和调试的时候需要配置 tomcat 不⽅便;
3、 发布不⽅便,servlet 项⽬必须依靠外置的 tomcat(外置的 web 容器)运⾏。
4、 路由配置不⽅便,⼀个访问地址对应⼀个 Servlet 类。
5、… 

2.2 Spring Boot 项目开发

创建项目并添加引用

如果你是社区版,则需要安装插件 

 

3 、Spring Boot编写代码

4、 Spring Boot 运行项目

 5、验证程序

这个 和 Servlet 是一样的,都是浏览器去访问。
在浏览器地址中输入:环回IP(主机地址)+ 冒号 + 端口号(8080) + UserController类的注解@RequestMapping(“/user”) 中 的 参数 /user + add 方法的注解中的参数 /add

 此时,这里的 /user 就相当于是 Servlet 的 context Path。
而add方法 的 /add,就相当于是 Servlet Path。
?号,后面就是查询字符串。也就是 请求正文,即:参数。

Spring Boot 会帮我们写好 设置 响应的 数据格式!!! 

6、发布项目 

yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs=wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

在Spring中是如何返回一个 json 形式的数据

一行关于 json’ 的 代码都没有!!!
直接返回一个 hasMap 就行了!【键值对 嘛】

 @RequestMapping("/getone")
    public HashMap<String,Object> getOne(Integer id){
        HashMap<String,Object> map = new HashMap<>();
        return map;
    }   

SpringBoot 相⽐于 Servlet 的优点总结:

1、 添加外部 jar 更容易(依赖),不易出错(版本问题⽆需关注);

2、 调试项⽬更加⽅便,⽆需配置 Tomcat;

3、发布项⽬更加⽅便,⽆需配置 Tomcat;

4、 添加路由更加⽅便,⽆需每个访问地址都添加⼀个类。

5、 …

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

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

相关文章

别只盯着Docker了,这十大容器运行时错过后悔

文章目录 一、Docker二、Containerd三、CRI-O四、Firecracker五、gVisor六、Kata七、Lima八、Lxd九、rkt十、runC如何选择适合自己的容器运行时&#xff1f; MCNU云原生&#xff0c;文章首发地&#xff0c;欢迎微信搜索关注&#xff0c;更多干货&#xff0c;第一时间掌握&#…

Apikit 自学日记:数据结构

您可以将API文档中的重复部分提取出来成为数据结构&#xff0c;方便其他文档中复用。当数据结构发生改变时&#xff0c;所有引用了该数据结构的API文档会同步发生改变。 创建数据结构 进入数据结构管理页面&#xff0c;点击 添加数据结构 按钮&#xff0c;输入相关内容并保存…

XXL-JOB任务调度

简介&#xff1a; XXL-JOB 是一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。 官网&#xff1a;https://www.xuxueli.com/xxl-job/ 以下业务场景可用任务解决 某电商平台需要每天上午10点&#xff0c;下午3点&#xff0c;晚上8点发…

2023 高质量 Java 面试题集锦:高级 Java 工程师面试八股汇总

人人都想进大厂&#xff0c;当然我也不例外。早在春招的时候我就有向某某某大厂投岗了不少简历&#xff0c;可惜了&#xff0c;疫情期间都是远程面试&#xff0c;加上那时自身也有问题&#xff0c;导致屡投屡败。突然也意识到自己肚子里没啥货&#xff0c;问个啥都是卡卡卡卡&a…

炫技亮点 Websocket集群解决方案汇总

文章目录 问题方案方案一&#xff1a;~~Session共享~~&#xff08;不可行&#xff09;方案二&#xff1a;负载均衡器&#xff08;状态路由&#xff09;方案三&#xff1a;广播机制&#xff08;异步方式 - 建议&#xff09;方案四&#xff1a;路由转发&#xff08;同步方式&…

【JS经验分享】你真的会写JS吗?满满干货,建议读三遍(2)

大家好&#xff0c;最近准备总结一下JS的经验&#xff0c;分享分享&#xff0c;有不对的欢迎讨论哈~ JS作为前端的基础技能&#xff0c;每一位前端开发都要运用熟练&#xff0c;但你真的会写JS吗&#xff1f;js全称JavaScript&#xff0c;是运行在浏览器上的脚本语言&#xff0…

【高危】Nuxt.js <3.4.3 远程代码执行漏洞(POC公开)

漏洞描述 Nuxt.js(简称 Nuxt)是一个基于 Vue.js 的通用应用框架&#xff0c;用于构建服务端渲染的应用程序&#xff08;SSR&#xff09;和静态生成的网站。 Nuxt.js 3.4.3之前版本中的 test-component-wrapper 组件的动态导入函数存在代码注入漏洞&#xff0c;当服务器在开发…

Java集合流式编程

一、简介 1、什么是集合流式编程 集合流式编程&#xff08;Stream API&#xff09;是Java 8引入的一个功能强大的特性&#xff0c;它提供了一种更简洁、更高效的方式来操作集合数据。它的设计目标是让开发者能够以一种更声明式的风格来处理集合数据&#xff0c;减少了显式的迭…

Ubuntu部署jmeter与ant

为了整合接口自动化的持续集成工具&#xff0c;我将jmeter与ant都部署在了Jenkins容器中&#xff0c;并配置了build.xml 一、ubuntu部署jdk 1&#xff1a;先下载jdk-8u74-linux-x64.tar.gz&#xff0c;上传到服务器&#xff0c;这里上传文件用到了ubuntu 下的 lrzsz。 ubunt…

WordPress 备份插件 BackUpWordPress

WordPress备份是一件必不可少的事情&#xff0c;毕竟自己辛辛苦苦花了很多时间精力写得博客&#xff0c;经验总结&#xff0c;必须保留传承。WordPress备份可以在发生灾难性情况&#xff08;比如劫持或意外锁定&#xff09;下迅速恢复&#xff0c;确保了网站安全。 BackUpWord…

揭示不断增长的预切蔬菜市场:深入研究行业驱动因素和挑战

随着现代社会的快节奏和人们生活压力的增加&#xff0c;越来越多的人选择预制菜作为饮食解决方案&#xff0c;预制菜已经成为餐饮行业的新兴赛道。预制菜的优点包括方便快捷、卫生安全、节省时间、质量可靠&#xff0c;以及丰富的菜品选择和灵活的烹饪和食用方式&#xff0c;满…

基于SpringCloud微服务流动资金贷款业务系统设计与实现

一、引言 由于传统的贷款业务系统并不能够顺应时代的变化,同时在一定程度上对业务发展进行了限制,所以为了适应时代的发展,信息贷款业务应该能够被产品化、丰富化,同时还需要制定一套特定的流程来满足新时代用户的需求。流程化的规范管理是当今银行业务发展的必然趋势,研究并开…

基于Stable Diffusion的2D游戏关卡生成【实战】

接下来的几篇文章将与常规主题有所不同&#xff08;这是在从事通用机器人技术的职业中吸取的教训&#xff09;。 相反&#xff0c;我决定利用我的一些新空闲时间 1 边做边学&#xff0c;并使用所有酷孩子都在谈论的一些很酷的新 ML。 推荐&#xff1a;用 NSDT设计器 快速搭建可…

分割回文串-ii

分割回文串-ii 题目链接&#xff1a;分割回文串-ii 思路&#xff1a;分割字符串s&#xff0c;使得子串都是回文串&#xff0c;最后获得最小分割次数。那么我们可以不断把字符串缩短&#xff0c;判断子串是否可以被分割成回文串&#xff0c;并且最小分割次数。这就是子问题分割…

贝叶斯算法人生

哈喽大家好&#xff0c;我是咸鱼 之前看到过耗子叔写的一篇文章《程序算法与人生选择》&#xff0c;这篇文章中耗子叔结合计算机中的经典算法&#xff08;排序、动态规划等等&#xff09;&#xff0c;让大家在人生道路的选择上获得了一些启发 我最近看了一些关于贝叶斯思想的…

StringBuilder和StringBuffer

StringBuilder和StringBuffer 目录 StringBuilder和StringBuffer特点常见方法练习&#xff1a;测试字符串连接StringBuilder和StringBuffer的区别 特点 封装了char[]数组 是可变的字符序列 提供了一组可以对字符内容修改的方法 常用append()来代替字符串做字符串连接”” 内部…

智慧文旅VR全景展示,深度VR沉浸式体验

导语&#xff1a; 智慧文旅VR全景展示为我们带来了一种独特的旅行体验&#xff0c;让我们可以穿越时空、身临其境地感受历史、艺术和自然的魅力。 在这个数字化时代&#xff0c;智慧文旅VR全景展示成为了旅游界的新宠&#xff0c;它让我们能够以一种前所未有的方式探索世界&am…

看完这篇 教你玩转渗透测试靶机vulnhub—Corrosion:2

Vulnhub靶机Corrosion:2渗透测试详解 Vulnhub靶机介绍&#xff1a;Vulnhub靶机下载&#xff1a;Vulnhub靶机安装&#xff1a;Vulnhub靶机漏洞详解&#xff1a;①&#xff1a;信息收集&#xff1a;②&#xff1a;Tomcat msf 上传漏洞拿到shell&#xff1a;③&#xff1a;look越权…

何时使用Kafka而不是RabbitMQ

Kafka 和 RabbitMQ 都是流行的开源消息系统&#xff0c;它们可以在分布式系统中实现数据的可靠传输和处理。Kafka 和 RabbitMQ 有各自的优势和特点&#xff0c;它们适用于不同的场景和需求。本文将比较 Kafka 和 RabbitMQ 的主要区别&#xff0c;并分析何时使用 Kafka 而不是 R…

独立商城系统开发功能注意事项有哪些?

电商行业的不断发展&#xff0c;越来越多的企业开始构建自己的独立商城系统&#xff0c;以满足消费者日益增长的需求。然而&#xff0c;在开发独立商城系统时&#xff0c;需要注意什么样的功能才能使其成为一个成功的电商平台呢&#xff1f;下面我们就来谈一谈独立商城系统开发…