赞
踩
有关Java和Maven等的环境搭建不过多赘述,直接开始操作。

打开IDEA,点击New Project开始创建。

选择Maven,选择自己的JDK版本,点击Next进入下一步

此时需要Name处填写项目名称,在Location处选择项目路径。需要注意的是:
Name填写的相同,之后会在对应的路径下生成项目GroupId采用域名反写的书写形式,作为项目组织唯一的标识符,通常以com或cn开头,使用.分割;ArtifactId 作为项目的唯一标识符,一般和项目名称相同填写完成之后点击Finish,此时新项目创建完成。


点击File -> Setting...,搜索Maven,在上图所画的红框内选择事先配置好的Maven

Maven home path为安装的Maven根目录所在路径User setting file为Maven的配置文件settings.xml所在路径Local repository为Maven本地仓库所在路径,引入的依赖包全部都存储在此仓库目录下,加入没有事先配置自己的Maven本地仓库,可以使用默认仓库设置好之后点击OK,完成!

项目的目录划分一般根据功能来划分包:
src/main/java下的包路径需要根据之前填写的ArtifactId 进行创建,反写的域名有几个逗号分隔符,就建几层包,只可多建不可少建。如上图所示我是多建了一个core包,我会将此包作为扫描包的根路径,之后所有的核心代码都会放置在此路径下DeployApplication:自定义命名,启动类放置在扫描包的根路径下,他是项目的唯一入口config包:用于放置所有的配置类modular包:核心业务代码,该包下所有代码按业务模块划分,每个业务模块进一步细分:
controller包:控制层,声明接口,主要用于接受前台传入的数据以及返回数据给前台dao包:数据持久层,用于放置以Mapper为结尾的接口文件和xml文件(该类文件放置在dao下的mapping包中)model包:用于定义数据模型,根据数据模型不同的用途分别放置在不同的包中:数据库表模型entity包、用于请求的数据模型request包、用于返回数据给前台的响应数据模型response包、其他数据模型dto包service包:业务服务层,主要用于实现业务的核心逻辑enums包:用于存放枚举类constant包:用于存放常量util包:用于存放工具类resources包:用于存放项目中需要用到的资源文件,像一些配置文件application.properties或是一些静态资源文件上述步骤中Maven的settings.xml文件是全局的配置文件,主要与Maven的环境配置有关。而pom.xml文件主要描述了项目的maven坐标以及项目的依赖关系,还有一些开发者需要遵循的、自己定义的约束条件,是项目级别的配置文件。
初始pom.xml文件,只需导入spring-boot-starter-web依赖,就能实现初步的启动运行,默认端口8080。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.6.RELEASE</version>
</dependency>
完整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.study</groupId> <artifactId>spring-boot-demo</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> </parent> <packaging>jar</packaging> <properties> <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> <testSource>${java.version}</testSource> <testTarget>${java.version}</testTarget> <encoding>${project.build.sourceEncoding}</encoding> </configuration> <version>${maven-compiler-plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>${project.build.sourceEncoding}</encoding> </configuration> <version>3.1.0</version> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.yml</include> </includes> </resource> </resources> </build> </project>
parent标签指定了父级坐标,之后所有导入的SpringBoot相关依赖都无需在指定版本号。jar和war两种打包方式,这里指定为jar打包方式properties标签,将所有依赖的版本进行统一管理,更易维护maven-compiler-plugin插件,用来编译项目代码,是一个Maven插件resouces标签配置资源文件加载,会将src/main/java文件夹下的所有.xml文件以及resources资源包下的所有.proerties、.xml、.yml文件进行编译,加载到编译之后的classes类路径下完善配置文件pom.xml后,保存代码,点击右侧侧边栏Maven选项卡,点击重新载入依赖包按钮Reload All Maven Projects,下载最新资源成功后,即可让最新pom.xml配置文件发挥作用。

在扫描包的根目录下创建启动类,如图在core包下创建DeployApplication.java文件,定义主函数入口:
@SpringBootApplication
public class DeployApplication {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = new SpringApplicationBuilder(DeployApplication.class).run(args);
}
}
之后启动项目,点击左侧绿色的箭头按钮,选第一个run或者第二个debug都可以运行,一般选择第二个,方便我们以后遇到问题之后进行调试,快速排查问题

启动成功!默认端口8080,要想自定义端口号,在application.properties文件中可以进行声明:server.port=[你的端口号]

在浏览器输入正确的地址http://localhost:8080,如下图。

在pom.xml配置文件下新增相关依赖
<properties> <mybatis-plus-boot-starter.version>3.4.2</mybatis-plus-boot-starter.version> </properties> <dependencies> <!--mysql数据库连接--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--MybatisPlus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus-boot-starter.version}</version> </dependency> </dependencies>
在application.properties文件中配置数据源
# 数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/firework_bbs_dev?serverTimezone=Asia/Shanghai
spring.datasource.username=[数据库登录用户名]
spring.datasource.password=[数据库登录密码]
配置文件有多种格式:
.properties为后缀的配置文件,书写格式都是如上所示,xx属性.xx属性=具体值.yml为后缀的配置文件,书写格式则是xx属性: xx属性: 具体值,如下所示# 数据库连接
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/firework_bbs_dev?serverTimezone=Asia/Shanghai
username: [数据库登录用户名]
password: [数据库登录密码]
启动项目,可以看到mybatisplus的启动UI。

接下来,验证一下数据库是否真的连接成功了,导入junit相关依赖方便进行单元测试,导入lombok用于简化实体类的创建。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
创建测试表tbl_demo,创建表的sql语句如下所示:
CREATE TABLE `tbl_demo` (
`id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '主键id',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '姓名',
`phone` varchar(25) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '手机号',
`create_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人id',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人id',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`is_del` int NOT NULL DEFAULT '0' COMMENT '逻辑删除 0-否 1-是',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
表结构如下图所示:

package com.study.core.modular.demo.model.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.util.Date; @Data @Accessors(chain = true) @Builder @AllArgsConstructor @NoArgsConstructor @TableName(value = "tbl_demo") public class Demo { /** * 主键id */ @TableId(value = "id", type = IdType.ASSIGN_UUID) private String id; /** * 姓名 */ @TableField(value = "`name`") private String name; /** * 手机号 */ @TableField(value = "phone") private String phone; /** * 创建人id */ @TableField(value = "create_id") private String createId; /** * 创建时间 */ @TableField(value = "create_time") private Date createTime; /** * 更新人id */ @TableField(value = "update_id") private String updateId; /** * 更新时间 */ @TableField(value = "update_time") private Date updateTime; /** * 逻辑删除 0-否 1-是 */ @TableField(value = "is_del") @TableLogic private Integer isDel; }
声明的mapper接口继承MybatisPlus的BaseMapper接口
package com.study.core.modular.demo.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.study.core.modular.demo.model.entity.Demo;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DemoMapper extends BaseMapper<Demo> {
}
package com.study.core.modular.demo.service; import com.study.core.modular.demo.dao.DemoMapper; import com.study.core.modular.demo.model.entity.Demo; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @Service @AllArgsConstructor public class DemoService { private final DemoMapper demoMapper; public Demo getDemoById(String id) { return demoMapper.selectById(id); } }
创建单元测试,调用service层方法
import com.study.core.modular.demo.service.DemoService; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; @RunWith(SpringRunner.class) @SpringBootTest public class DemoTest { @Resource private DemoService demoService; @Test public void getDemoTest() { Demo demo = demoService.getDemoById("1"); System.out.println(demo); } }
控制台返回结果如下图所示,能看到正确打印出了demo数据,表示连接数据库以及整合MybatisPlus成功。

以上是对SpringBoot项目的初始化,要想完成企业级开发,还需要做许多配置。
有兴趣的小伙伴可以继续阅读第二篇有关Swagger接口文档以及MybatisPlus的配置:从零开始SpringBoot项目搭建(二)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。