三、第一个SpringBoot程序

这篇博客介绍了如何使用SpringInitializr创建第一个SpringBoot项目,详细解析了pom.xml文件,并指导编写了一个简单的HTTP接口。通过SpringBoot的快速构建特性,展示了项目打成jar包的过程以及一些实用的小技巧,包括更改端口号和自定义启动banner。

狂神-SpringBoot笔记目录



三、第一个SpringBoot程序

3.1准备工作

我们将学习如何快速的创建一个Spring Boot应用,并且实现一个简单的Http请求处理。通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。

我的环境准备:

  • java version “1.8”
  • Maven-3.6.1
  • SpringBoot 2.x 最新版

开发工具:

  • IDEA

3.2创建基础项目说明

Spring官方提供了非常方便的工具让我们快速构建应用(提供了一个快速生成的网站)

Spring Initializr:https://start.spring.io/

项目创建方式一: 使用Spring Initializr 的 Web页面创建项目

1、打开 https://start.spring.io/

2、填写项目信息

3、点击”Generate Project“按钮生成项目;下载此项目

4、解压项目包,并用IDEA以Maven项目导入,一路下一步即可,直到项目导入完毕。

5、如果是第一次使用,可能速度会比较慢,包比较多、需要耐心等待一切就绪。

项目创建方式二: 使用 IDEA 直接创建项目(idea继承了上面说的那个网站)

1、创建一个新项目

2、选择spring initalizr , 可以看到默认就是去官网的快速构建工具那里实现

3、填写项目信息

4、选择初始化的组件(初学勾选 Web 即可)

5、填写项目路径

6、等待项目构建成功

项目结构分析:

通过上面步骤完成了基础项目的创建。就会自动生成以下文件。

1、程序的主启动类

2、一个 application.properties 配置文件

3、一个 测试类

4、一个 pom.xml

3.3pom.xml 分析

打开pom.xml,看看Spring Boot项目的依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!--有一个父项目-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.wlw</groupId>
    <artifactId>hello</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>hello</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--web依赖: 集成tomcat,配置dispatcherServlet,xml....-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--所有的Springboot依赖都是使用这个前缀:spring-boot-starter-->

        <!--单元测试-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <!--打jar包插件-->
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

  • 如上所示,主要有四个部分:
    • 项目元数据信息:创建时候输入的Project Metadata部分,也就是Maven项目的基本元素,包括: groupld、 artifactld、 version、 name、 description等
    • parent:继承spring- boot -starter-parent的依赖管理,控制版本与打包等内容
    • dependencies: 项目具体依赖,这里包含了spring-boot-starter -web用于实现HTTP接口(该依赖中包含了Spring MVC),官网对它的描述是:使用Spring MVC构建Web (包括RESTful)应用程序的入门者,使用T omcat作为默认嵌入式容器。; spring-boot-starter-test用于编写单元测试的依赖包。更多功能模块的使用我们将在后面逐步展开。
    • build: 构建配置部分。默认使用了spring-boot-maven-plugin,配合spring-boot-starter-parent就可以把Spring Boot应用打包成JAR来直接运行。

3.4编写一个http接口

1、在主程序的同级目录下,新建一个controller包,一定要在同级目录下,否则识别不到

2、在包中新建一个HelloController类

package com.wlw.hello.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

//自动装配 : 这是原理!!!
//@Controller
@RestController
public class HelloController {
    // 接口: http://localhost:8080/hello
    @RequestMapping("/hello")
    public String hello(){
        //在此调用service  ,接收前端的参数
        return "hello,world!";
    }
}

3、编写完毕后,从主程序启动项目,浏览器发起请求,看页面返回;控制台输出了 Tomcat 访问的端口号!

在这里插入图片描述

简单几步,就完成了一个web接口的开发,SpringBoot就是这么简单。所以我们常用它来建立我们的微服务项目!

3.5将项目打成jar包,点击 maven的 package

在这里插入图片描述

  • 如果遇到以上错误,可以配置打包时 跳过项目运行测试用例
<!--
    在工作中,很多情况下我们打包是不想执行测试用例的
    可能是测试用例不完事,或是测试用例会影响数据库数据
    跳过测试用例执
    -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <!--跳过项目运行测试用例-->
        <skipTests>true</skipTests>
    </configuration>
</plugin>
  • 如果打包成功,则会在target目录下生成一个 jar 包

在这里插入图片描述

  • 打成了jar包后,就可以在任何地方运行了!OK

在这里插入图片描述

3.6小技巧

  • 更改tomcat端口号 ( resources 目录下的application.properties 文件)

    #更改项目端口号
    server.port=8082
    
  • 更改启动时显示的字符拼成的字母:到项目下的 resources 目录下新建一个banner.txt 即可,将图案放在这个文件即可

以下是编写第一个Spring Boot程序的教程: ### 项目构建方式与环境选择 可以选择Maven或Gradle作为项目构建工具,这里以Maven为例。部署形式可以是jar包或传统的war包,示例中选择jar包形式。Spring Boot版本选择2.1.6,开发语言选择Java,Spring Boot也支持以Groovy语言开发 [^5]。 ### 添加依赖 若要编写RESTFul风格的接口,需要在`pom.xml`中引入以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` [^4] ### 编写主程序类 主程序类是Spring Boot应用的入口,需要使用`@SpringBootApplication`注解来标注。以下是一个示例: ```java package com.mashunda; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /* * @SpringBootApplication来标注一个主程序类,说明这是一个spring boot应用 */ @SpringBootApplication public class HelloWorldMainApplication { public static void main(String[] args) { // spring boot 应用启动起来 SpringApplication.run(HelloWorldMainApplication.class, args); } } ``` [^1] ### 编写控制器类 使用`@RestController`和`@EnableAutoConfiguration`注解编写一个简单的控制器类,用于处理HTTP请求。示例代码如下: ```java package com.xxx.firstboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @RestController:spring mvc的注解, * 相当于@Controller与@ResponseBody的合体,可以直接返回json * * @EnableAutoConfiguration:spring boot的注解 * 是无配置启动的关键部分 */ @RestController @EnableAutoConfiguration public class FirstBoot { @RequestMapping("/hello") public String testFirstMethod(){ return "Hello jigang!!!"; } /** * spring boot的入口,在整个项目中,包括其子项目在内, * 只能有一个main方法,否则spring boot启动不起来 */ public static void main(String[] args) { SpringApplication.run(FirstBoot.class, args); } } ``` [^2] ### 启动程序 提供一个包含`main`方法的启动类,并使用`@SpringBootApplication`进行标识为当前程序的入口启动类。打开默认的启动类(如`HelloApplication`),点击左侧箭头启动`main`方法即可启动Spring Boot应用 [^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悬浮海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值