最近刚好闲下来,就想自己动手搞一个springboot + vue 的项目练练手,顺带记录一下项目搭建过程的各种坑!!!可能过程有点啰嗦,但是准备了目录,大家自己跳着看就行。
一、环境准备
1.1 本机环境(四大法宝)
- 准备JDK(jdk1.8就行)
- 准备maven(本人用的是3.5.4版本)
- 准备mysql(本人用的5.7.40版本)
- 开发软件idea(本人用的是2020.1版本):这个懂的都懂(支持正版)
jdk下载地址:
Java I tell you-爪哇我话你知
JDK下载 - 编程宝库
Index of /Adoptium/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html
maven下载地址
mysql下载地址:
注:maven版本记得跟idea版本进行适配,不然创建项目的时候会报错:Unable to import maven project(自己踩过的坑,给大家留把伞)
上面的下载啥的,懂一两句英文,应该是没啥问题。
1.idea 2021兼容maven 3.8.1及以前的所有版本。
2.idea 2020兼容maven 3.6.3及以前的所有版本。
4.idea 2019兼容maven 3.6.1及以前的所有版本。
3.idea 2018兼容maven 3.6.1及以前的所有版本。
1.2 项目创建
正常的springboot项目创建有两种方式,我们直接用便捷式的创建。
注:便捷式创建,默认从国外网站下载信息,项目创建会有点慢,我们可以自己去配置阿里云的仓库地址:https://start.aliyun.com/
1.2.1 配置加载地址
点击下一步,报错:Initialization failed for 'https://start.aliyun.com/' Please check URL, network and proxy settings.
解决办法:
我的连接显示没问题,但还是死活创建不了!所以只能改回原始的地址!有好的解决办法的道友,麻烦留言告知我一下~~~
1.2.2 项目基本设置
然后直接next到完成创建就行了!其余啥都不用选!
1.2.3 启动项目
这一步主要是检测一下项目有没有啥问题。
自己搞一个Controller测试一下,页面回显info则说明一切正常。
@RestController
@RequestMapping("/openApi/")
public class TestController {
@GetMapping("info")
// @CrossOrigin("https://www.baidu.com")
public String info(){
return "info";
}
}
1.3 项目依赖引入
1.3.1 引入数据库
<!-- 引入数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version> <!-- 这里需要注意 mybatis 与 mysql 的版本 -->
</dependency>
在配置文件上配置一下数据库的相关数据
#配置数据库
spring:
datasource:
url: jdbc:mysql://localhost:3306/springboot?characterEncoding=utf-8&useSSL=false
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
com.mysql.jdbc.Driver
对应低版本msyql、也就是 mysql-connector-java 5
中的。
com.mysql.cj.jdbc.Driver
对应高版本mysql、也就是 mysql-connector-java 6
及以上。
测试一下是否能连接上数据库
@SpringBootTest
class SpringbootApplicationTests {
@Autowired
DataSource dataSource;
@Test
public void test() throws SQLException {
System.out.println(dataSource.getConnection());
}
}
如果一直连接不上,着重检查一下自己本机的MySQL环境是否安装正确,Maven依赖中导入的驱动版本是否与本地的MySQL版本兼容;再者看看自己的数据库配置是否正确。
1.3.2 引入MybatisPlus依赖
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
注意注意注意:MybatisPlus的版本必须跟我们引入的MySQL依赖版本相适配!!!
#配置mybatis
mybatis-plus:
#配置日志
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 这个配置会把后台的查询SQL详细展示出来,方便我们自己检查错误之类的
mapper-locations: classpath:mapper/*.xml
不知道MybatisPlus怎么用的,大家伙上网找找几篇文章,大概就知道怎么用了。
1.3.3 其他帮助开发的依赖
<!-- lombok简化开发 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- 这个依赖其实也可以不加 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.0</version>
</dependency>
1.4 整合起来测试
上面已经初步搭建好了相关配置,现在开始联合测试
1.4.1 首先,往数据库里面搞点数据
DROP TABLE IF EXISTS `login_user`;
CREATE TABLE `login_user` (
`user_id` varchar(255) NOT NULL,
`user_name` varchar(255) DEFAULT NULL COMMENT '唯一',
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `unique_name` (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `login_user` VALUES ('1', '张三', '123');
INSERT INTO `login_user` VALUES ('2', '王五', '123');
INSERT INTO `login_user` VALUES ('3', '李四', '123');
1.4.2 准备实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("login_user")
public class User {
@TableId(value = "user_id")
private String userId;
@TableField(value = "user_name")
private String username;
@TableField(value = "password")
private String password;
}
加在类上的注解,必须引入lombok依赖(上面已经给出),才能使用!主要就是自动帮我们生成getter、setter方法以及有参/无惨构造器!
1.4.3 准备测试的Controller
@RestController
@SuppressWarnings("all")
@RequestMapping("/user/")
public class UserController {
@Autowired
UserService userService;
@GetMapping("getUserInfo")
public List<User> getInfo(){
return userService.getUserInfo();
}
}
1.4.4 准备相关的Service
public interface UserService {
public List<User> getUserInfo();
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;
@Override
public List<User> getUserInfo() {
return userMapper.selectByMap(null); // 传入空时,默认查全部
}
}
1.4.5 准备UserMapper
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
没看错,就是这么简简单单的一个Mapper接口。是不是比Mybatis的配置简单多了!
其实主要还是依靠于MybatisPlus自带的这个BaseMapper接口,为我们提供了强大的功能!
1.4.6 启动springboot项目
在网页上输入,如果页面正常返回数据,说明上面的配置一切正常!
可以修改我们项目的启动端口,在application.yml 或者 application.properties 修改。
#服务器启动端口,默认8080
server:
port: 8888
上面的修改配置啥的,都是基于 application.yml,在 application.properties 中写法不一样。
application.yml 自己需要自己手动创建一下,必须跟 application.properties 在同一个目录。
二、总结
上面只是指导大家进行一些简单的项目配置,后面还有继续加入相关的配置(需要用到啥再来配置),后续我也会继续写相关的文章。如果这篇文章对大家有帮助,就点赞收藏吧~~~