【JavaEE】JavaEE进阶:框架的学习 - Spring的初步认识

【JavaEE】JavaEE进阶框架的学习 - Spring的初步认识

在之前的学习中我们已经掌握了Servlet的框架去完成一个项目而目前企业正在使用的技术则是我们接下来重点学习的

本文章为 JavaEE进阶的第一篇文章JavaEE进阶我们将学习

  1. Spring全家桶
    • Spring / Spring Boot/ Spring MVCSpring Cloud为社招必须校招不须
  2. MyBatis
  3. Redis

最后我们将对我们之前做的项目进行优化或者说重新用这些框架写一遍这些代码~

1. JavaEE初阶 与 JavaEE进阶 开发上的区别

虽然我们在JavaEE初阶就学习了一个小框架Servlet用得也不错也好像省去很多功夫几行后端代码就能完成很多功能但是这是在JavaEE进阶之前的认知

而JavaEE进阶学习的框架将更加的方便

  • 框架的存在就是 “人类的懒”框架就是为了方便开发提高开发效率所以越好的框架使用起来就应该越方便~
  • Spring全家桶其实就是这么一个很好的东西开源框架

有人比喻“学习框架就像从小作坊到小工厂的升级”

  • 所以学完之后我们会发现原来的日子过得那么的惨

接下来就让我们来对比一下Servlet 与 Spring Boot

1.1 Servlet VS Spring Boot

Servlet涉及的东西不必多说我们谈谈Spring Boot的优点

  1. 无需配置Tomcat在项目中“点击运行”即可
    • 这是因为Spring Boot内置了Web容器一个Spring Boot就有一整个Tomcat
  2. 快速添加外部jar包
  3. 快速发布项目例如可以使用 java -jar 方式就可以发布
  4. 对象自动装配

接下来我们演示一下Spring Boot开发不必在意为什么就看看方不方便

Servlet的开发参考博客【JavaEE】Tomcat-Servelet第一个helloworld程序_s:103的博客-CSDN博客

1.2 Spring Boot的 “hello world”代码演示

1.2.1 Spring Boot项目的创建

首先我们要在IDEA创建Spring项目则需要去下载一个插件

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

下一步

  • 选择项目类型
  • 选择语言
  • 选择打的包的类型
  • 选择java的jdk的版本

在这里插入图片描述

  • 不用改为war包war包是啊佩奇的Servlet的要求
  • 所以点这个会额外多个类

在这里插入图片描述

下一步

  • jdk8只能使用2头的版本
  • 选择用到的工具/插件/jar包

在这里插入图片描述

下一步

在这里插入图片描述

点击finish即可~

在这里插入图片描述

判断是否创建成功

在这里插入图片描述

  • 下面那个就是打war包的重新创建一个吧~

在这里插入图片描述

在这里插入图片描述

然后自动加载~

配置国内源不然会很慢

在这里插入图片描述

在对应目录里创建个settings.xml

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 htt
                              p://maven.apache.org/xsd/settings-1.0.0.xsd">

    <pluginGroups>
    </pluginGroups>
    <proxies>
    </proxies>
    <servers>
    </servers>
    <mirrors>
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>
    <profiles>
    </profiles>
</settings>

在这里插入图片描述

这样会比较快~

或者找我拿一个xml文件~

  • 直接下载到那个目录下即可我的xml文件的内容更多但是刚才的代码也够用~
  • 前提是你那个目录原本是没有settings.xml的如果本来就有就只需要插入刚才的代码进去即可

版本号2.7.13后面那个单词删后再刷新加载

在这里插入图片描述

创建不了项目返回500可能是因为网络的问题可能是你的梯子的原因重新创建几次就行了

在这里插入图片描述

1.2.2 hello world

ctrl shift f10运行它

在这里插入图片描述

  • 需要打开个插件

我们现在还有很多配置没弄所以我就用网图来解释了

在这里插入图片描述

我们没有配置smart tomcat就可以运行起来了~

在这里插入图片描述

一个类对应多个url

在这里插入图片描述

运行

  • 访问127.0.0.1:8080/注解名 即可
  • 不需要项目名因为这个端口肯定只有一个项目目前在用Servlet多此一举所以用注解名就能确保唯一性了
    在这里插入图片描述

1.2.3 发布

在这里插入图片描述

通过日志找到jar包

  1. 命令行java -jar demo.jar就可以自动启动Tomcat网站也可以访问
  2. 将这个自动生成jar包部署在网站就ok了这个以后再讲~

所以SpringBoot

  1. 添加外部jar包更容易无需关注版本问题
  2. 运行项目更方便无需配置tomcat
  3. 发布项目更方便无需配置tomcat
  4. 添加路由更方便无需写多个类一个方法就可以是一个路由

2. 框架的学习

  1. 基础框架Spring开始工具箱
  2. Spring Boot快速开发Spring脚手架
  3. MyBatis快速操作数据库
  4. 其他日志、事物、拦截器…

3. Spring的初步认识

3.1 Spring是什么

Spring 是一个开源的轻量级 Java 开发框架它旨在简化 Java 应用程序的开发。Spring 提供了丰富的功能和组件用于构建各种类型的应用程序包括企业级应用、Web 应用、移动应用等。

指的就是Spring Framework

一句话概况SpringSpring是包含了众多工具方法的IoC容器

  • 这些工具方法就是我们要积累的学习的工具方法~

那问题来了什么是容器什么是IoC

容器就是用来容纳其他物品的装置。

例如

  1. List/Map是数据存储 容器
  2. Tomcat是Web 容器

而Spring则是IoC 容器

IoC = Inversion of Control 翻译成中文就是“控制反转”也就是说Spring是“控制反转”容器这样回答是0分的因为控制反转就是直译回答面试官要表达明确的含义

3.2 IoC是什么

get英语的含义则是“控制权的反转”

这个控制权是一部分代码例如对象创建/对象的生命周期的“控制权”属于程序员而现在反转了属于Spring

  • 不是方向的反转而是“剧情的反转”

  • 也就是说Spring现在有权利去控制一部分代码在开发过程中

例如你有一个类A不需要new A()了直接向Spring框架要一个即可

当然这样讲还是有点笼统接下来用一个例子一段代码让你感受其含义

  • 一个普通的java项目

3.3 IoC的好处

以一辆车为例
在这里插入图片描述

  1. 传统开发就相当于每次获得拿一辆车就得现场造
  2. Spring就相当于在车库里面取

并且IoC的优点有松耦合

  • 低耦合

3.3.1 传统程序开发模式

在这里插入图片描述

通过init方法去造车

在这里插入图片描述

运行结果

在这里插入图片描述

但是根据常识不限于这辆车Car是一个虚拟的例子一个产品往往需要满足用户的一些特殊需求做出一些“定制”的东西~

  • 这辆车我身材高达我想要轮子大一点我身材瘦小我想要轮子小一点…

对于刚才的开发模式我们就要做出以下改动

在这里插入图片描述

运行结果

在这里插入图片描述

在这里插入图片描述

你可能已经发现了这样的耦合性太高了增加这么一个功能就要改这么多代码我要求更多要改的代码就越多了

3.3.2 Spring开发模式

在这里插入图片描述

通过init方法去造车

在这里插入图片描述

在这里插入图片描述

  • 通过new Test()的方式去拿到“框架”里的一个car实例

运行结果

在这里插入图片描述

同样的我要是想要大轮子或者小轮子

我们只需要在“向框架拿Tire对象的时候”去拿另一个Tire对象

在这里插入图片描述

运行结果

在这里插入图片描述

在这里插入图片描述

可见IoC很好的实现了“松耦合”


文章到此结束谢谢观看
可以叫我 小马我可能写的不好或者有错误但是一起加油鸭

代码链接IoC-understand/src · 游离态/马拉圈2023年7月 - 码云 - 开源中国 (gitee.com)

具体Spring项目如何去开发要点有哪些下一篇博客会有很好的感受


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: SpringJava