SpringBoot--web项目搭建

Posted 11014p

tags:

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

一、准备工作

  • Java JDK1.8(安装过程省略)
  • maven:apache-maven-3.3.9(安装过程省略)
  • IntelliJ IDEA(安装过程省略)
  • spring-boot-2.1.6.RELEASE

二、用Spring Boot新建web项目

新建一个maven工程(注意,不要勾选create from archytype,虽然它会帮你创建骨架,但是会从外网下载一些东西,很慢,导致会卡在那,下载东西的时间,还不如手工创建一下目录,分分钟搞定)。

然后输入相应的groupId,artifactId。

项目创建过程就省略了。项目建好后,目录结构是这样的:

 

打开pom.xml文件,添加<parent></parent>节点:

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.demo</groupId>
    <artifactId>WebProject</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- Maven POM文件继承 spring-boot-starter-parent -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
    </parent>
  <!-- Additional lines to be added here... --> 
</project>

上面没有添加任何依赖,但仍然可以build。

使用命令行:

mvn dependency:tree  --打印一个当前项目的依赖树。
mvn clean package --对项目进行打包。

OK,现在我们添加spring-web项目依赖:

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

现在再次查看一下依赖树。

 

 

 可以看出,spring-boot-starter-web  包含了很多内容,spring-webmvc、spring-web、jackson、validation、tomcat、starter。

好,接下来修改pom.xml,我直接贴上我的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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.demo</groupId>
    <artifactId>WebProject</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- Maven POM文件继承 spring-boot-starter-parent -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
    </parent>

    <!-- 为一个web应用程序添加典型的依赖关系, Starter POMs依赖 -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

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

    <!-- Spring Boot也提供了一个可选的 Maven Plugin来创建可执行的jars -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

可以看出,继承了spring-boot-starter-parent,依赖了junit,spring-boot-starter-web,spring-boot-maven-plugin。以前我们在spring的配置,spring-boot都会按照默认配置,帮我们弄好。(你可以像使用标准的Java库文件一样使用Spring Boot。简单的将需要的 spring-boot-*.jar 添加到classpath即可。)

Spring Boot不要求任何特殊的工具集成,所以可以使用任何IDE,甚至文本编辑器。只是,仍然建议使用build工具:Maven 或 Gradle。

Spring Boot依赖使用 org.springframework.boot groupId 。通常,让你的Maven POM文件继承 spring-boot-starter-parent,并声明一个或多个 Starter POMs依赖即可。Spring Boot也提供了一个可选的 Maven Plugin来创建可执行的jars。

需要注意的是, spring-boot-starter-parent 是一个非常好的方法,但并不适用于所有情况。有时你需要继承其他的POM,或者你不喜欢默认的设置,可以使用另外的方式。


现在就可以开始写代码了。 由于Maven默认编译路径为 src/main/java 下面的源码,所以,默认设置下,需要创建这些文件夹。然后,编写文件 src/main/java/ExampleController.java:

package com.demo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ExampleController {

    @GetMapping(path ="/home" )
    public String home() {
        return "你好,Spring Boot";
    }
}

创建项目启动类:

package com.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;

import java.util.Arrays;

@Configuration
//默认扫描启动类所在的包目录及子目录,可以通过scanBasePackages属性定制
@SpringBootApplication
public class DemoApplicationEntrance {
    private static final Logger logger=LoggerFactory.getLogger(DemoApplicationEntrance.class);
    public static void main(String[] args) {
        //print system env
        System.getenv().entrySet().stream().forEach(entry -> logger.info("system env:{}",entry));
        System.getProperties().entrySet().stream().forEach(property -> logger.info("system property:{}",property));
        Arrays.asList(args).stream().forEach(arg -> logger.info("application arg:{}",arg));
        //start application
        SpringApplication.run(DemoApplicationEntrance.class, args);
    }
}

现在可以右键运行main方法,效果如下:

 

 

 现在让我们来访问:http://localhost:8080/home。如下图:

 

 

 



以上是关于SpringBoot--web项目搭建的主要内容,如果未能解决你的问题,请参考以下文章

手把手idea搭建springboot web项目,附具体操作和源码下载

SpringBoot web开发

springboot:Web开发静态资源源码探究

CentOS 7.6 搭建Gitlab教程

springboot - web项目

01用IDEA创建springboot web项目