Spring 家族:项目开发的得力助手

 一、Spring框架

  在 Spring 框架出现之前,企业级 Java 开发面临着诸多困难。例如,在构建大型的 Java 应用时,对象之间的关系管理非常复杂。传统的方式是通过在代码中手动创建对象实例并维护它们之间的关联, 这样使得程序开发效率十分低下!

  以一个简单的汽车制造为例。在传统的模式下,如果你要造一台汽车,你得自己生产汽车所需的所有零件,比如发动机、轮胎、变速器、减震器……而这样对一个制造工厂来说工作量有点过于庞大,因为此时它不仅需要制作出各种零件,还要组装各种零件成为一台汽车。这样效率十分低下!

  而早期没有spring框架出现之前,程序员开发项目面对的就是这样一个问题,在构建项目时,需要手动去创建各种所需要的对象。而spring框架的出现解决了这样一个问题,我们可以把它想象成一个功能齐全的大型材料箱,里面有各种各样的材料,用于帮助你建造各种类型的产品。就好像汽车组装工厂有不同专门的合作部门(Spring 框架)负责提供发动机、轮胎、变速器等生产汽车的相关零件……而汽车组装工厂只需要负责组装汽车即可。有了Spring框架,程序员也无需花费大量精力去手动创建对象,只需要从spring框架的 " 依赖注入 " 功能去获取即可。(这里的【依赖】也就是之前需要手动实例化的各种相关对象)

 二、Spring-boot——Spring框架的智能助手

  虽然 Spring框架的出现解决了程序员无需手动实例化各种各样的对象的一大问题,但是摆在程序员前面的还有另外一个巨大的问题,在传统的 Spring 应用开发中,开发人员需要花费大量时间进行复杂的配置,这也是一个巨大且繁琐的工作量,因此 Spring-boot 应运而生,让我们用下面的例子来深入学习一下 Spring-boot 的功能。 

   假设你想要建造一个房子(相当于开发一个应用程序)。在传统方式下(传统的 Spring 应用开发),你需要自己去寻找各种建筑材料(相当于配置各种 Spring 组件),比如木材、砖块、水泥、电线等,而且还需要详细规划每种材料怎么使用,如何连接各种管道、电路等(复杂的配置过程), 想到这是不是头都大了?

  而 Spring Boot 就像是一个智能房屋建造套装。这个套装里面有预先组合好的模块(起步依赖)。例如,有一个 “厨房模块”,这个模块里面已经包含了炉灶、水槽、橱柜等厨房所需的基本设施,而且这些设施已经按照合理的布局连接好了(自动配置)。

 Spring Boot 的出现就是为了简化这个过程,让开发人员能够更专注于业务逻辑的实现,而不是被繁琐的配置所困扰。

三、项目依赖

  我们前面总会看到一个比较陌生的词汇—— 依赖,这个究竟是什么东东,可以吃吗?

   项目依赖 是我们前面所提到的,程序员构建项目所需要的对象,把项目理解为汽车的话,那项目依赖就是汽车的发动机、变速器等汽车的组成部分。

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>9.1.0</version>
</dependency>

 这段代码是一个 Maven项目的依赖配置信息,用于在 Java 项目中添加 MySQL 数据库连接器的依赖。通过在项目文件中添加这段代码,项目可以使用 MySQL 数据库进行数据存储和检索操作。这里我们看到了一个陌生的词汇——Maven,它又是什么呢?

  Maven可以理解为一个中央远程仓库,这个仓库存放着各种各样的项目依赖,每个依赖都有唯一的坐标,<groupId>、 <artifactId>、 <version>共同构成了项目的唯一坐标。 这其实就和我们生活中的菜鸟驿站差不多,通过坐标来定位快递。

 组织 ID(groupId):通常代表组织或公司的唯一标识符。

 项目 ID(artifactId):是一个项目在组织ID 下的唯一标识符。

 版本(version):指的是项目依赖的版本号。

 四、spring-boot项目

  在开发功能比较多的Java项目时,需要Spring框架和Spring-boot的支持,要想使用它们,我们首先需要创建一个Spring-boot项目。这里我们以 IntelliJ IDEA 专业版为例子,具体创建的方法,可以去询问豆包或者B站的教程,这里就不详细介绍了。

 创建好的Spring-boot文件如图会产生以上几个文件,让我们了解一下它们分别是什么?

 图中选中的两个文件分别是src 文件夹pom.xml文件,它们在 Java 项目中具有重要作用:

1、src文件夹

 src 文件夹是存放项目源代码的主要目录。在 Java 项目中,它通常包含 main 和 test 两个子目录。我们的 Java 代码就写在 src / main 文件夹中。

2、pom.xml文件

 pom.xml 文件定义了项目所依赖的其他库和框架,我们前面提到的项目依赖就写在这个文件里面。Maven 会根据 pom.xml 中的依赖声明自动从中央仓库或其他配置的仓库中下载所需的依赖项, 确保项目能够顺利编译和运行。

  总之,src 文件夹和 pom.xml 文件是 Java Maven 项目的重要组成部分,src 文件夹存放着项目的源代码和相关资源,而 pom.xml 文件则管理着项目的构建、依赖和配置等关键信息,二者协同工作,确保项目的开发、构建和管理能够顺利进行。

五、运行一个简单的项目

   1、首先,在src / main / java / com . example . dome 文件夹下面创建一个 . class文件,然后写这样一个代码。

  2、接下来,启动项目

  3、启动项目之后,我们可以使用浏览器url路径,访问网页。可以看到网页展示了hello方法返回的字符串” hello Controller ”

 Q : 为什么在浏览器输入 127.0.0.1 : 8080 / hello 就可以获取到hello方法返回的 “ hello Controller " 字符串的网页呢?

  127.0.0.1 : 8080 / hello :127.0.0.1是本地主机的 IP 地址、8080是端口号、hello是方法路径

 知道了这些之后,我们举一个生活化的例子,帮助你理解这个过程:

                                                                                                                                                   

 想象一下你家是一个小型的 “服务器”,你就是那个 “服务器管理员”。你在家里设置了一个信箱(就好比是端口 8080),并且告诉了你的朋友们,如果他们想给你传递消息,就把信放到这个信箱里,并且在信封上写上 “hello”(这就类似于请求路径 /hello)。

                                                                                                                                                        

  当你的朋友(相当于浏览器)按照你说的地址(127.0.0.1 就像是你家的具体位置)找到你家,然后把写有 “hello” 的信放进信箱(发送请求到指定端口和路径)。

                                                                                                                                                            

  你在家里(服务器)收到信后,根据信封上的标记(请求路径),知道这封信是要获取特定信息的。然后你按照之前的约定,准备了一张纸条,上面写着 “hello Controller”(这就是方法返回的字符串),并把它放回信箱(服务器返回响应给浏览器)。

                                                                                                                                                          

  最后,你的朋友(浏览器)从信箱里取出纸条,就看到了 “hello Controller” 这个内容,就好像在浏览器中看到了那个返回的网页内容一样。

                                                                                                                                                         

  这样是不是就更容易理解这个过程啦?简单来说,就是你提前设置好了规则和接收方式,当按照规则发送请求时,服务器就会按照约定返回相应的内容。



  使用更为专业版本的语言来说,这其中是经历了这样一个过程:

 当你在开发环境中运行这段 Java 代码(包含@RestController和@RequestMapping等注解的代码)时,通常会启动一个内嵌的 Web 服务器(比如常见的 Tomcat 服务器),并且将代码中定义的控制器和请求映射等配置加载到服务器中。


  服务器会监听特定的端口(这里是8080),等待来自客户端(浏览器)的 HTTP 请求


  127.0.0.1 是本地主机的 IP 地址,当在浏览器中输入127.0.0.1:8080 / hello 时,浏览器会向本地主机的 8080 端口发送一个请求,请求的路径是 /hello 。


  由于之前在 Java 代码中使用@RequestMapping(" /hello ")将 /hello 路径映射到了 hello 方法,当服务器接收到这个请求后,会根据请求路径找到对应的 hello 方法进行处理。


 hello 方法返回的字符串 " hello Controller " 会被服务器封装成 HTTP 响应,发送回浏览器,浏览器接收到响应后,就会显示这个字符串的内容,看起来就像是获取到了一个包含该字符串的网页。

代码解析:

1、@RestController是 Spring 框架中的一个注解,用于标注一个类是一个控制器(Controller),并且该类中的方法返回值会直接作为 HTTP 响应体返回。


2、@RequestMapping("/hello") 注解用于将 HTTP 请求映射到特定的处理方法上。这里将 /hello 这个路径映射到 hello 方法上。


  如果我们在 url 路径上面传入参数,那服务器也可以接收到这个参数,让我们来看看效果!

  注意:这里的参数名字 name 要与 hello 方法中的参数 name 一致才可以被服务器接收!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值