Spring boot 基础web入门搭建

Posted xiaoduup

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring boot 基础web入门搭建相关的知识,希望对你有一定的参考价值。

springBoot 基础入门

文章目录


简介
spring boot 现在已经成为java 搭建微服务系统的基础技能,生态圈已经越发的完善;网上的资料也很丰富了,学习之余总结下,巩固巩固。一下是一系列的创建使用流程,更多的适用一些有过了解和使用过的人员。

知识点:
1. 创建一个简单的springboot web项目
2. 打包可执行jar 和传统war包
3. 熟悉springboot 项目的基本结构

源码

源码链接地址

下一节 Spring boot Banner和icon

Spring boot Banner和icon

开启springboot应用程序

环境

 JDK: 1.8+
 springboot version: 2.1.6.RELEASE
 maven 项目环境
 开发工具  idea

首先创建一个父pom工程project

1. 父工程

xml 中使用 集成

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
    </parent>

不 过 我 们 通 常 使 用 依 赖 管 理 的 方 式 使 用 s p r i n g b o o t \\colorred不过我们通常使用依赖管理的方式使用springboot 使使springboot
(本教程使用parent方式)

 <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>$spring-boot.version</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

2. 创建 demo项目

new 一个module, 创建 maven项目, 这样我们继承了 父项目,也就依赖了 spring-boot-starter-parent

demo 项目 pom中 添加 spring-boot-starter-web的依赖

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

创建启动类,添加注解@SpringbootApplication

@SpringBootApplication
public class ApplicationStart 
    public static void main(String[] args) 
        SpringApplication.run(ApplicationStart.class);
    


运行 main 方法

...
  .   ____          _            __ _ _
 /\\\\ / ___'_ __ _ _(_)_ __  __ _ \\ \\ \\ \\
( ( )\\___ | '_ | '_| | '_ \\/ _` | \\ \\ \\ \\
 \\\\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.6.RELEASE)

2021-03-22 10:35:50.825  INFO 52572 --- [           main] c.x.springboot.demo.ApplicationStart     : Starting ApplicationStart on DESKTOP-N5K2GI1 with PID 52572 (F:\\workSpaces\\idea\\xiaodu\\spring-boot-all\\com-xiaodu-springboot-demo-web\\target\\classes started by huayu in F:\\workSpaces\\idea\\xiaodu\\spring-boot-all)
2021-03-22 10:35:50.827  INFO 52572 --- [           main] c.x.springboot.demo.ApplicationStart     : No active profile set, falling back to default profiles: default
2021-03-22 10:35:51.973  INFO 52572 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2021-03-22 10:35:51.991  INFO 52572 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2021-03-22 10:35:51.991  INFO 52572 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.21]
2021-03-22 10:35:52.157  INFO 52572 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2021-03-22 10:35:52.157  INFO 52572 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1302 ms
2021-03-22 10:35:52.433  INFO 52572 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2021-03-22 10:35:52.572  INFO 52572 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2021-03-22 10:35:52.574  INFO 52572 --- [           main] c.x.springboot.demo.ApplicationStart     : Started ApplicationStart in 2.187 seconds (JVM running for 3.485)

启动成功,日志显示端口 8080

验证访问

配置文件

如上我们成功了启动了springboot 项目,现在我们使用配置文件, 配置端口

application.properties
resources 目录下创建application.properties 配置文件,并编辑

从新启动,访问,这时候端口发生了变化

使用ymal 文件

更多的时候我们使用yml 文件充当配置文件,层次结构更加明了
application.yml
server:
  port: 8171
spring:
  application:
    name: springboot-web-demo

编写controller

@RestController
@RequestMapping("/demo")
public class DemoController 

    @GetMapping("/hello")
    public String hello() 
        return "hello";
    


注 意 创 建 类 要 在 启 动 类 的 包 路 径 下 \\color#FF0000注意创建类要在启动类的包路径下

启动访问 hello

3. 打包

创建可执行jar

添加maven插件

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

运行maven命令 或者使用idea工具直接点击

mvn package -DskipTests
生成target下的jar

运行jar
java -jar com.xiaodu.springboot-demo-web-1.0-SNAPSHOT.jar

打包war,使用传统容器运行

-pom文件修改
修改packaging 为war,并排除掉嵌入的tomcat

 <packaging>war</packaging>
 ...
  <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <!--排除掉嵌入的tomcat容器-->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- 添加tomcat容器,并设置scope provided-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

配置类

继承SpringbootServletInitializer, (没有特殊的配置也可以不重写configure方法)
@SpringBootApplication
public class ApplicationStart extends SpringBootServletInitializer 
    public static void main(String[] args) 
        SpringApplication.run(ApplicationStart.class, args);
    

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) 
        return builder.sources(ApplicationStart.class);
    

打包到tomcat运行

打包好的war,修改为demo.war,(自动生成的名字过长,tomcat默认path是项目名称),放到webapps目录下,然后去bin目录下startup.bat 点击启动, tomcat 默认端口8080,项目path为项目名称demo。
当然也可是在idea或者eclipse总配置server直接部署运行。

以上完成了打包运行。

如需切换容器,只需要修改依赖即可
例如:

切换嵌入式容器jetty
  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <!--排除掉嵌入的tomcat容器-->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
  <!--添加 jetty-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
            <scope>compile</scope>
        </dependency>

下一节:Spring boot Banner和icon

以上是关于Spring boot 基础web入门搭建的主要内容,如果未能解决你的问题,请参考以下文章

spring boot学习总结-- 基础入门 Hello,spring boot!

Spring Boot入门-快速搭建web项目

Spring Boot 入门之基础篇

SpringBoot基础入门

Spring Boot 2.x基础教程:快速入门

Spring Boot从入门到精通-项目搭建