1、使用SpringBoot脚手架创建
我们使用SpringBoot的脚手架Spring Initializr创建,如图所示:
2、选择SpringBoot版本
最开始做项目时候,组长说创建一个 springboot 2.5.4 的项目,mysql使用 5.6.X ,maven使用是3.6.X。其实最开始我也没有多想,直接照做了,但是后面回想自己平时看到的SpringBoot开源代码,有的是使用的是2.5.X,有的是使用2.6.X,还有的是使用2.7.X版本的,除了3以上版本在实际开发中没有见过,目前2版本的见到的太多版本号不一样的了。难道只要是2版本,都可以随意使用?当然我们知道不同的版本肯定是有差异的,每个版本都存在一些bug,后面的版本会对前一个版本进行修护和升级,也有一些方法,规则的调整。
所以说,如果要是一个人开发,只要你不用到每个框架版本的新特性,使用一些常规的操作,其实也不用太关注版本,但是实际情况是,往往后端不是你一个人在开发,要是每个人版本都不一样,万一出现了什么bug,排查起来也会比统一版本的情况下排查减少很多不必要的麻烦。所以开发中项目指定版本这里存在两个目的,一个是:统一版本,方便管理(跟每家公司有自己的代码规约一样,遵守就行了),第二个目的,降低风险,不使用版本太高的框架,且往往使用常用的框架版本进行开发,开发环境也比较熟悉。当然最后还有一个,多看看官网,多了解一些框架的不同版本特性,也有助于自己开发。
2.1 推荐选择2.7.x版本开发
spring2.X版本在2023年11月24日停止维护了,因此创建spring项目时不再有2.X版本的选项,只能从3.1.X版本开始选择而Spring3.X版本不支持JDK8,JDK11,最低支持JDK17,因此JDK8也无法选择了,如图所示:
当然,停止维护只代表我们无法用idea主动创建spring2.X版本的项目了,不代表我们无法使用。目前阿里云还是支持创建Spring2.X版本的项目的,修改Server URL为https://start.aliyun.com,如图所示:
现在可以创建项目了,如图所示:
点击Next,建议选择2.7.x版本,并且根据项目需求添加依赖如图所示:
常用的依赖说明一下:
- Lombok : 需要我们先安装Lombok插件,可以简化实体类书写;
- String Web:添加项目的web支持,比如内置的Tomcat等;
- MySQL Driver:我们用到MySQL数据库,所以添加MySQL相关驱动
- MyBatis Framework:我们用到MyBatis这一ORM框架操作数据库;
- JDBC API:Spring对JDBC的封装,如JdbcTemplate。
至此,简单的SpringBoot项目算创建完成了。
3、配置项目并启动项目
3.1 创建项目结构
1、创建配置文件
项目刚创建完成时,默认的配置文件是application.properties文件,当然我们也可以创建application.yml文件。如果在yml文件中没有输入提示,需要到设置File Types中检查是否设置了ymal文件,如图所示:
2、创建项目结构
3、配置maven
在这里配置本地Maven本地路径、Maven仓库。在本地Maven的settings.xml中会配置maven的镜像资源等信息。
4、检查pom.xml文件
特别强调,检查一下pom.xml的<build>中的<skip>是否为true,有些情况会默认为true。我们需要将其设置为<skip>false</skip>,或者去掉该标签,否则在打包的时候会没有程序的入口类mainClass,然后导致无法启动程序:
4、 下载相关依赖
在这里我们下载之前配置好的依赖,一般项目创建后会默认下载
5、 配置基础内容
在配置文件中配置一些基本的内容:
server:
port: 8080 # 端口号
servlet:
context-path: /myspringboot001 #项目根路径(前面必须加/)
spring:
# 项目名称
application:
name: my-spring-boot001
# Mysql配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3307/my-springboot-001?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password: root1998
# Mybatis配置
mybatis:
mapper-locations: classpath:mappers/*.xml #指定Mybatis的Mapper文件
type-aliases-package: com.example.myspringboot001.*.entity #指定Mybatis的实体目录
6、 配置Mybatis包扫描路径
我们在启动类上配置Mybatis的包扫描路径,用注解@MapperScan:
@SpringBootApplication
@MapperScan(value = {
"com.example.myspringboot001.**.mapper"})
public class MySpringboot001Application {
public static void main(String[] args) {
SpringApplication.run(MySpringboot001Application.class, args);
}
}
以上配置好之后,我们就可以启动springboot项目。浏览器输入:http://localhost:8080/myspringboot001/ 后出现如下内容,说明项目启动成功,如图所示:
4、配置多环境
在实际开发中,我们一般都会有好几套运行环境。比如开发环境、测试环境、生产环境等等
我们不可能每次都去修改一个配置文件,这就显得很麻烦。下面我们主要说一说怎么配置多环境。
1、 修改application.yml配置文件
spring:
# 项目名称
application:
name: my-spring-boot001
# 当前配置文件
profiles:
active: dev
2、创建多环境配置文件
上面的配置,项目在启动的时候就会加载application.yml(主)和application-dev.yml(副)配置文件。
注意:如果主配置文件和副配置文件的配置项冲突的时候,会优先使用副配置文件的配置项。
5、连接数据库查询数据
5.1 新建数据库my-springboot-001并且创建sys_user表
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` int(0) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名',
`nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户昵称',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户密码',
`sex` enum('1','2') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户性别',
`birthday` date NULL DEFAULT NULL COMMENT '用户生日',
`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户邮箱',
`phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户电话',
`addr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户地址',
`stop_flag` enum('1','0') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户启用标志',
`create_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '用户创建时间',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '用户更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `sys_user` VALUES (1, 'xiezhr', '程序员小凡', '12345678', '1', '1999-09-19', 'xiezhr@qq.com', '13288888888', '云南省昆明市', '0', '2023-09-04 21:08:32', NULL);
INSERT INTO `sys_user` VALUES (2, 'xiaoqi', '程序员晓柒', '123456', '1', '2020-10-04', 'xiaoqi@163.com'</