baodajun

使用idea初始化一个SpringBoot项目

1. 运行idea,点击 New Project,进入项目创建页面

  • 在使用idea创建springboot项目时默认选中就是Spring Initializr方案,该方案指向的地址就是springboot官网的初始化项目地址https://start.spring.io/
  • 使用官网创建项目时会生成一个压缩包,还需要再导入idea中,建议直接使用idea创建项目,一步到位
  • JDK使用的是1.8版本,没有安装java环境的需要先安装java环境

2. 点击Next,进入项目的基本信息填写页面


配置项解释

  • Group 即GroupId创建项目的组织或组的唯一标识符。GroupId必须满足 Java包名规范,分为多段的形式,比如org.apache.maven这种,实际上对应的也是JAVA的包的结构(在编辑GroupId时会自动生成相同的包路径,包路径可以修改),即main目录里java的目录结构,这里作者使用的本公司的域名。
  • Artifact 即ArtifactID,是项目的唯一标识符,实际对应项目的名称,就是项目根目录的名称。也是不带版本号的jar的名字,唯一要求是使用小写字母,且没有特殊符号。
  • Type 项目构建工具,这里我们选择熟悉的Maven,idea自带集成了Maven理论上不再需要安装,但如果需要使用Maven命令还需要到系统环境变量中配置下MAVEN_HOME。作者使用的idea2021 3.1版本的maven版本为3.6.3版本足够使用了。

3. 继续Next,进入选择SpringBoot版本和依赖管理的窗口

这个页面我们可以勾选我们需要使用到的springboot-start-模块,这里我们先都不勾选,等到后面用到时在POM文件中手动添加

4. 继续Next,设置工程在硬盘上的存储位置。最后,点击Finish完成项目的构建

5. 到此我们已经创建了一个基本的SpringBoot项目


工程目录结构简介-转载自BillyYang

  • .mvn文件夹 存放mvnw相关文件。存放着maven-wrapper.properties和相关jar包以及名为MavenWrapperDownloader的java文件
  • .gitignore 分布式版本控制系统git的配置文件,意思为忽略提交,在 .gitingore 文件中,遵循相应的语法,即在每一行指定一个忽略规则。 如:.log、/target/、.idea
  • mvnw 全名是maven wrapper的文件,它的作用是在maven-wrapper.properties文件中记录你要使用的maven版本,当用户执行mvnw clean 命令时,发现当前用户的maven版本和期望的版本不一致,那么就下载期望的版本,然后用期望的版本来执行mvn命令,比如mvn clean命令
  • mvnw / mvnw.cmd 执行mvnw命令。mvnw文件适用于Linux(bash),mvnw.cmd适用于Windows 环境。
  • .iml文件 intellij idea的工程配置文件;包含当前project的一些配置信息,如模块开发的相关信息,比如java组件,maven组件,插件组件等,还可能会存储一些模块路径信息,依赖信息以及一些别的信息。
  • .idea文件夹 存放项目的配置信息,包括数据源,类库,项目字符编码,历史记录,版本控制信息等
  • pom.xml 项目对象模型(核心重要),pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件。
  • src文件夹 springboot项目文件(核心重要),我们整个项目代码都在这个文件夹内。

作者idea设置隐藏了所有.iml与.idea结尾的文件所以在图上没有显示出来,而且作者一般会将.mvnmvnwmvnw删除,打包时直接手动敲命令即可。

6.删除和隐藏无用文件后的项目结构

WebApplicationWebApplicationTests类都可以直接启动,但我们没有依赖任何模块所以程序加载完成后会自动停止

编写一个测试HTTP接口

1.修改POM文件,添加spring-boot-starter-web依赖

<?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.4.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ihooyah</groupId>
    <artifactId>web</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>web</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>

        <!--web开发支持,包含tomcat、spring-webmvc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--单元测试支持-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

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

POM依赖解析

  • spring-boot-starter-parent 和其父级依赖 spring-boot-dependencies 作用
    1.编码格式默认使用UTF-8
    2.java版本默认使用1.8
    3.声明了开发中常用的依赖的版本号,自动版本仲裁机制
    4.默认的资源过滤和插件管理
  • spring-boot-starter-web
    web开发支持,默认使用嵌入式的tomcat作为web容器对外提供HTTP服务,包含了SpringMvc
  • spring-boot-starter-test
    单元测试支持
  • spring-boot-maven-plugin
    maven的打包插件,注意一点:spring-boot-maven-plugin 插件在打Jar包时会引入依赖包,也就是说会将所有依赖的jar都打到一起,这会导致如果你的jar需要被其他项目依赖会报错

2.编写接口代码

  • 在包com.ihooyah.web下新建 project.controller(各位随意)文件夹
  • 创建类WebController
package com.ihooyah.web.project.controller;

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

/**
 * @author matengfei
 */
@RestController
public class WebController {

    @RequestMapping("helloWorld")
    public String hellWord(){
        return "Hello World";
    }

}

@RestController 相当于@ResponseBody@Controller;添加该注解的类会被spring自动管理,该类中所有的方法会自动加上@ResponseBody注解,所有方法返回时会无视视图处理器,直接将数据按照指定的格式写入请求的响应体中。
@RequestMapping 映射请求地址,通过它来指定控制器可以处理哪些URL请求;可以指定请求的方法为post/get等,@RequestMapping可以添加在类和方法上。

  • 打开WebApplication类,右击启动程序,程序启动成功,如下图后在浏览器输入 http://localhost:8080/helloWorld 可以看到页面显示出 Hello World,我们第一个接口就完成了。

编写单元测试

  • WebController类中右击,选择Generate --> test (或者光标放到类名上,快捷键 alt+enter,选择Create Test)
  • 此时在src.test.java.com.ihooyah.web包,已经生成了和 src.main.java下相同的文件路径与名为WebControllerTest的测试类,我们编写一个简单的测试。

单元测试编写方法可以参考springboot官网

  • 右击运行在控制台中可以看到我们接口返回 Hello World,单元测试完成

分类:

技术点:

相关文章:

  • 2021-04-02
  • 2021-12-04
  • 2021-05-29
  • 2021-11-14
  • 2022-12-23
  • 2021-05-03
猜你喜欢
  • 2022-12-23
  • 2021-08-18
  • 2021-10-26
  • 2021-12-14
  • 2021-08-06
相关资源
相似解决方案