后端SpringBoot项目的构建
一、后端创建项目
1.新建maven项目
首先打开idea,新建一个后端的maven项目并勾选上所下载好的JDK
这样我们就构建了一个结构如图所示的项目
其中,
- src-main-java是我们编写主要文件的地方。
- resources文件夹内则是放yml类型文件即启动配置的地方。
- 而下面的test内则是我们编写测试类的地方。
- 最后的pom.xml则是引入外部依赖的地方。
2.引入springboot依赖及其余功能性依赖
-
检查idea的maven配置,修改为本地的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test</groupId> <artifactId>TestProject</artifactId> <version>1.0</version> <parent> <artifactId>spring-boot-dependencies</artifactId> <groupId>org.springframework.boot</groupId> <version>2.3.3.RELEASE</version> </parent> <!--统一编码和JAVA版本--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <java.version>1.8</java.version> </properties> <dependencies> <!--MySQL 连接组件--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--MyBaits--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> <!--Druid--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.2</version> </dependency> <!-- Druid Spring Boot 组件--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.2</version> </dependency> <!--Spring Boot Aop--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <!--Spring Validation--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> <!--Spring Boot 测试--> <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> <!--Junit--> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <scope>test</scope> </dependency> <!--LomBok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!--Hutool--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.4.7</version> </dependency> <!--Spring Boot Web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.4.1</version> </dependency> <!--Spring Boot Actuator--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version> </dependency> <!--Junit测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <profilesActive>dev</profilesActive> </properties> </profile> <profile> <id>pro</id> <properties> <profilesActive>pro</profilesActive> </properties> </profile> </profiles> </project>
-
最后,我们刷新一下maven,等待下载依赖即可。
-
至此,我们的依赖就引入完成。
3.启动测试
事一步一步做,饭一口一口吃。导完后,我们就要启动测试一下。
-
找到src-main-java-org.example下的Main类也就是我们的启动类,我们给他改一个名字,叫XxxApplication。
-
然后我们将其内容修改为如下代码
-
@Slf4j @SpringBootApplication(exclude = {SecurityAutoConfiguration.class}) @ServletComponentScan public class TestApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(TestApplication.class); } }
-
-
class上的
@xx 为注解,不了解的小伙伴可以先去学学注解是什么,它是我们写代码的利器,这里不再过多赘述。 -
然后在resource文件夹下新建两个文件,分别为application.yml以及application-test.yml,前者是我们配置的主类,公共配置可放在其中,后者则是配置的子类,放一些具有差异性的配置,如mysql等。我们通过主类选择对应子类进行启动。
-
application.yml文件内容如下,为配置应用端口,应用的子配置等内容,我们这里将端口选为8070,path选为
/test 。-
# Tomcat server: tomcat: uri-encoding: UTF-8 threads: max: 1000 min-spare: 30 port: 8070 servlet: context-path: /test session: cookie: http-only: true spring: application: name: test # 环境 dev|test|prod profiles: active: test #选择application-test.yml启动 messages: encoding: UTF-8 basename: i18n/messages mvc: pathmatch: matching-strategy: ANT_PATH_MATCHER servlet: multipart: max-file-size: 1024MB max-request-size: 1024MB enabled: true
-
-
application-test.yml内容如下,为配置mysql数据库的相关内容,注意url内3306后面为你数据库的名称,我的数据库名称叫做
test ,问号后面一般为固定写法。下面的username和password分别为你mysql的用户名以及密码,我的数据库无密码,因此为空。-
spring: datasource: druid: #MySQL driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true username: root password:
-
-
最后…项目,启动!
- 看控制台的输出,成功把tomcat启动到
localhost:8070/test 这个地址,表示成功,之后我们的接口都是拼接在这个项目地址之后的。
4.接口测试
项目启动成功后,我们接着就进行接口的测试。
- 在src-main下新建com.test.common文件夹
-
取消勾选下图的选项可层级显示。
-
然后我们把org-example下的XxApplication移到com下,与test同一层,这样才能扫描到test下写的接口。
-
接着我们再在common下新建四个文件夹分别为controller、service、entity、以及dto。并在service下新建一个impl文件夹。
-
controller为编写对外接口的文件夹
-
service为编写对外接口的实现方法的接口的文件夹(觉得不理解,可看下面接口工作顺序解释)
- service下的impl则是编写实现实现方法的接口的文件夹
-
entity下的类的内容是对应数据库内表的字段。
-
dto下的类则是entity的拓展类,给接口用的,因为有时接口接收的数据并不是entity的内容,我们需要dto进行一次转换,才能存入数据库中。
-
一般接口的工作顺序是,外部请求到来,运行controller里的对应类,对应类则调用service内的方法,该方法由serviceImpl进行实现。这样做是为了防止实现代码直接写在controller内,不好扩展。此处不理解没有关系,我们测试暂时用不到。
-
再在controller文件夹内新建一个test类
-
内容如下
-
package com.test.common.controller; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @AllArgsConstructor @RestController @RequestMapping("/layer1") public class test { @GetMapping("layer2") public String getString(){ String text = "测试成功"; return text; } }
-
@AllArgsConstructor :它是lombok中的注解,作用在类上;
使用后添加一个构造函数,该构造函数含有所有已声明字段属性参数,对应的 @NoArgsConstructor 是添加一个无参数的构造器。 -
@RestController: 用以表明当前是一个控制器类。其为Controller+ResponseBody,Controller 里面的方法都以 json 格式输出,不用再写什么 jackjson 配置的了!
-
@RequestMapping :相当于SpringMVC的xml中注册servlet,简单理解就是test下面的所有接口都在/layer1之后
-
@GetMapping,声明此方法是一个
Get 请求
-
-
最后,重启项目!然后再浏览器中输入我们的接口地址localhost:8070/test/layer1/layer2
5.总结
第一篇介绍了从新建一个maven项目到完成一个接口编写,其中经历了springboot依赖引入、springboot基本配置yml文件编写、mysql配置连接、以及基本接口框架的构建,下一篇将编写接口对数据库进行增删改查操作。
6.本文借鉴文档
新建SpringBoot Maven项目中pom常用依赖配置及常用的依赖的介绍_pom依赖-CSDN博客
前后端分离项目-后端接口入门开发手记_前后端分离项目搭建-CSDN博客
二、 写在最后
我自己也是一个编程小白,写这个专栏的目的也是为了巩固基础知识顺带和大家一起分享,如果其中有什么问题或者需要补充的,欢迎各位多多斧正。