⛳ SpringBoot入门 - SpringBoot HelloWorld

⛳ SpringBoot入门 - SpringBoot HelloWorld 💭

我们了解了SpringBoot和SpringFramework的关系后,我们可以开始创建一个Hello World级别的项目了。@Gu

🏭创建SpringBoot Web应用

一下是采用IDEA开发工具的创建方式

  • 选择 Spring Initialize

Spring 提供的初始化项目工具:
在这里插入图片描述

当然可以用 Spring脚手架 初始化项目工程。

  • 项目名

  • 输入项目名

  • 填写GAV信息

    • Group:是公司或者组织的名称,是一种命名空间的概念,比如网站,那么group可以是 mrgu.asia
    • Artifact:当前项目的唯一标识。
    • Version * :项目的版本号,一般xx-SNAPSHOT表示非稳定版。(新版本的IDEA取消了该功能)
  • 选择初始化模块

Spring Initialize可以帮助你选择常见的功能模块的starter包
在这里插入图片描述

🐾 初始化后的内容

  • README.md

README.md中可以添加这个项目的介绍,它将显示在github/gilab/gitee等仓库托管中项目介绍的首页。

在这里插入图片描述

  • .gitignore

.gitignore是git仓库,你可以将不需要提交到代码仓库的文件添加到这个文件(比如程序编译后生成的运行目录target等),默认如下

HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/

### VS Code ###
.vscode/
  • pom.xml

在Maven包管理pom.xml中添加依赖包

<?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.6.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>mrgu.asia</groupId>
    <artifactId>demoHelloWorld</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demoHelloWorld</name>
    <description>demoHelloWorld</description>

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

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

🎁 给你的第一个应用添加包和代码

添加如下代码,启动即可启动一个WEb服务,通过浏览器访问/hello,并返回Hello World。

package mrgu.asia.demohelloworld;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoHelloWorldApplication {

    /**
     * main interface
     * @param args
     */
    public static void main(String[] args) {
        SpringApplication.run(DemoHelloWorldApplication.class, args);
    }

    /**
     * hello world
     * @return hello
     */
    @GetMapping("/hello")
    public ResponseEntity<String> hello(){
        return new ResponseEntity<>("Hello World", HttpStatus.OK);
    }

}

💻 运行你的第一个程序

点击 DemoHelloWorldApplication 入口的绿色按钮,运行程序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-leESmWdH-1678980494227)(E:\Knowledge_base\SpringBoot\02、SpringBoot入门-SpringBoot_HelloWorld.assets\image-20230316182013680.png)]

运行后,看到如下信息:表明程序启动成功(启动了一个内嵌Tomcat容器,服务端口在8080)
在这里插入图片描述

这时候我们可以通过浏览器浏览
在这里插入图片描述

🚜 一些思考

到此,你会发现一个简单的web程序居然完成了。这里你需要一些思考:

📝 为什么我们添加一个starter-web模块便可以了呢 ?

我们安装Maven Helper的插件,用来查看Spring-boot-starter-web模块的依赖
在这里插入图片描述

我们看一下这个模块的依赖,你便能初步窥探出模块支撑

在这里插入图片描述

🐾 我们如何更改更多Server的配置呢 ?比如Tomcat Server

为什么Tomcat默认端口号是8080?如前文所述,SpringBoot最强大的地方在于约定大于配置,只有你引入某个模块的xx-start包,它将自动化注入配置,提供了这个模块的功能;比如这里我们在POM中添加了如下的包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

它内嵌了Tomcat并提供了默认的配置,比如默认端口是8080。

我们可以在application.properties或者application.yml中配置。

在这里插入图片描述

特别的,如果添加了如下包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

并且你的IDE支持(比如IDEA商业版),可以自动给你配置提示

在这里插入图片描述

⭐ SpringBoot 还提供了哪些starter某块呢 ?

Spring Boot 推荐的基础POM文件

名称说明
spring-boot-starter核心POM,包含自动配置支持、日志库和对YAML配置文件的支持
spring-boot-starter-amqp通过spring-rabbit支持[AMQP](AMQP_百度百科 (baidu.com))
spring-boot-starter-aop包含 spring-aop 和 AspectJ 来支持面向切面编程(AOP)。
spring-boot-starter-batch支持 Spring Batch,包含 HSQLDB。
spring-boot-starter-data-jpa包含 spring-data-jpa、spring-orm 和 Hibernate 来支持 JPA。
spring-boot-starter-data-mongodb包含 spring-data-mongodb 来支持 MongoDB。
spring-boot-starter-data-rest通过 spring-data-rest-webmvc 支持以 REST 方式暴露 Spring Data 仓库。
spring-boot-starter-jdbc支持使用 JDBC 访问数据库。
spring-boot-starter-security包含 spring-security。
spring-boot-starter-test包含常用的测试所需的依赖,如 JUnit、Hamcrest、Mockito 和 spring-test 等。
spring-boot-starter-velocity支持使用 Velocity 作为模板引擎。
spring-boot-starter-web支持 Web 应用开发,包含 Tomcat 和 spring-mvc。
spring-boot-starter-websocket支持使用 Tomcat 开发 WebSocket 应用。
spring-boot-starter-ws支持 Spring Web Services。
spring-boot-starter-actuator添加适用于生产环境的功能,如性能指标和监测等功能。
spring-boot-starter-remote-shell添加远程 SSH 支持。
spring-boot-starter-jetty使用 Jetty 而不是默认的 Tomcat 作为应用服务器。
spring-boot-starter-log4j添加 Log4j 的支持。
spring-boot-starter-logging使用 Spring Boot 默认的日志框架 Logback。
spring-boot-starter-tomcat使用 Spring Boot 默认的 Tomcat 作为应用服务器。

所有这些 POM 依赖的好处在于为开发 Spring 应用提供了一个良好的基础。Spring Boot 所选择的第三方库是经过考虑的,是比较适合产品开发的选择。但是 Spring Boot 也提供了不同的选项,比如日志框架可以用 Logback 或 Log4j,应用服务器可以用 Tomcat 或 Jetty。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值