使用IDEA搭建SpringBoot项目
一 .前言
目前市面上常用的SpingBoot项目例子多不胜数,但是很多不必要的功能大家都用不上,这里提供一个简单快速轻量级的方案
二.环境相关
本文采用 IDEA2020.3 JDK8 MySQL5.7
三.新建项目
1.File->new->project
2.选择 (Spring Initializr),jdk1.8,点击next
3.填写项目信息,本次制作例子用 项目名改为(demo1),java版本改为(8),点击next
4.环境选择 这里先不选择直接 点击next.
5.选择项目路径,点击finish
四.项目配置
1. 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 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.2.2.RELEASE</version>
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<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>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.github.apiggs</groupId>
<artifactId>apiggs-maven-plugin</artifactId>
<version>1.6</version>
<configuration>
<id>书籍管理服务接口文档</id>
<title>书籍管理服务接口文档</title>
<description></description>
<version>1.0</version>
</configuration>
</plugin>
</plugins>
</build>
</project>
2.点击右上角的刷新按钮 刷新Maven
3.新建结构
新建控制器(controller)和服务(service) 新建BookService与BookController
修改完可以删除(test) 如下图
4.修改配置
application.properties 改成 application.yml 文件内容如下
server:
port: 8081
spring:
application:
name: demo1
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/jdbctest?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
5.编写服务类
BookService 文件如下
package com.example.demo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class BookService {
@Autowired
JdbcTemplate jdbcTemplate;
public int addBook(String bookname,String author) {
return jdbcTemplate.update("insert into book(bookname,author) values (?,?)", bookname, author);
}
public int updateBook(String bookname,String author,String id) {
return jdbcTemplate.update("insert into book set bookname=?,author=? where id =?", bookname, author,id);
}
public int deleteBookBtId(Integer id) {
return jdbcTemplate.update("delete from book where id=?", id);
}
public Map<String,Object> getBookById(Integer id){
return jdbcTemplate.queryForMap("select * from book where id=?",id);
}
public List<Map<String,Object>> getAllBooks(){
return jdbcTemplate.queryForList("select * from book");
}
}
6.编写控制器类
BookController文件如下
package com.example.demo.controller;
import com.example.demo.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
*书籍操作接口
**/
@RestController
public class BookController {
@Autowired
BookService bookService;
/**
* 书籍新增
*
* @return 1
*/
@GetMapping("bookAdd")
public Integer bookAdd(){
bookService.addBook("1","Redis设计与实现","黄健宏");
bookService.addBook("2","Redis设计与实现","林子雨");
bookService.addBook("3","大数据技术原理与应用","黄健宏");
bookService.addBook("4","大数据技术原理与应用","林子雨");
return 1;
}
/**
* 书籍 根据ID查询
*
* @return 书籍信息
*/
@GetMapping("bookFindById")
public Map<String,Object> bookFindById(String id){
return bookService.getBookById(id);
}
/**
* 书籍 修改
*
* @return 修改行数
*/
@PostMapping("bookUpdate")
public Integer bookUpdate(@RequestBody Map<String,Object> map){
return bookService.updateBook(String.valueOf(map.get("bookname")),String.valueOf(map.get("author")),String.valueOf(map.get("id")));
}
/**
* 书籍 删除
*
* @return 删除行数
*/
@PostMapping("bookDelete")
public Integer bookDelete(@RequestBody Map<String,Object> map){
return bookService.deleteBookBtId(String.valueOf(map.get("id")));
}
/**
* 书籍 查询所有书籍
*
* @return 所有书籍信息
*/
@GetMapping("bookFindAll")
public List<Map<String,Object>> bookFindAll(){
return bookService.getAllBooks();
}
}
7.创建数据库
sql语句如下 数据库为 jdbctest
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
`id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`bookname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`author` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
五.生成接口文档
打开Maven列表 展开Pligins->apiggs->apiggs:apiggs(双击)
得到接口文档如下图 其中.json文件 可以直接导入Postman