创建maven项目
java版本环境
版本:
1. java version "1.8.0_251"
2. Apache Maven 3.8.4
实体类
create table tf_users
(
user_id int PRIMARY KEY comment'用户ID(主键)'
,user_name varchar(200) comment'用户名'
,password varchar(100) comment'密码(加密存储)'
,email varchar(100) comment'邮箱'
,phone_number int comment'手机号'
,id_card varchar(100) comment'证件号'
,create_time date comment'注册时间'
,login_time date comment'最后登录时间'
,avatar_link varchar(200) comment'用户头像链接'
,user_profile varchar(800) comment'用户简介'
,role_rule varchar(100) comment'角色/权限等级'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 comment'用户'
;
package com.mode.tables;
import lombok.Data;
@Data
public class tf_UsersMode {
String user_id;
String user_name;
String password;
String email;
String phone_number;
String id_card ;
String create_time;
String login_time ;
String avatar_link ;
String user_profile;
String role_rule;
}
接口层
package com.service;
import com.mapper.tf_UsersMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface tf_UsersApi {
@Select("select * from tf_users")
List<tf_UsersMapper> qq();
}
控制层
package com.controller;
import com.mapper.tf_UsersMapper;
import com.service.tf_UsersApi;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class ControllerWG {
@Autowired
private tf_UsersApi tf_UsersApi;
@RequestMapping(value="/ss",method= RequestMethod.GET)
public List quest() {
System.out.println("asdasdsad");
List<tf_UsersMapper> a=tf_UsersApi.qq();
return a;
}
}
Swagger2
package com.controller;
import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
@Configuration
@EnableSwagger2
//@ComponentScan("com.yichun.swagger_boot_demo.controller")
public class Swagger2 {
@Bean
public Docket docker(){
// 构造函数传入初始化规范,这是swagger2规范
return new Docket(DocumentationType.SWAGGER_2)
//apiInfo: 添加api详情信息,参数为ApiInfo类型的参数,这个参数包含了第二部分的所有信息比如标题、描述、版本之类的,开发中一般都会自定义这些信息
.apiInfo(apiInfo())
.groupName("sws_v1.0")
//配置是否启用Swagger,如果是false,在浏览器将无法访问,默认是true
.enable(true)
.select()
//apis: 添加过滤条件,
.apis(RequestHandlerSelectors.basePackage("com.controller"))
//paths: 这里是控制哪些路径的api会被显示出来,比如下方的参数就是除了/user以外的其它路径都会生成api文档
.paths((String a) ->
!a.equals("/user"))
.build();
}
private ApiInfo apiInfo(){
Contact contact = new Contact("名字:XXX", "个人链接:https://XXX", "邮箱:XXX@sina.com");
return new ApiInfo(
"标题", // 标题
"API接口文档", // 描述
"版本内容:v1.0", // 版本
"链接:https://XXX", // 组织链接
contact, // 联系人信息
"设计:1.0 ", //版本
"版本链接:https://XXX", // 许可连接
new ArrayList<>()// 扩展
);
}
}
启动类
package com;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan(basePackages = {"com.service"})
public class ControllerApplication {
public static void main(String[] args) {
SpringApplication.run(ControllerApplication.class, args);
System.out.println("服务已启动……");
}
}
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.wg</groupId>
<artifactId>wgapp</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<dependency>
<!-- 引用Druid为数据源依赖 -->
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
<!--Swagger2-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-guava</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<!-- tocken生成依赖start-->
<!-- <dependency>-->
<!-- <groupId>io.jsonwebtoken</groupId>-->
<!-- <artifactId>jjwt-api</artifactId>-->
<!-- <version>0.11.2</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>io.jsonwebtoken</groupId>-->
<!-- <artifactId>jjwt-impl</artifactId>-->
<!-- <version>0.11.2</version>-->
<!-- <scope>runtime</scope>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>io.jsonwebtoken</groupId>-->
<!-- <artifactId>jjwt-jackson</artifactId> <!– or jjwt-gson if Gson is preferred –>-->
<!-- <version>0.11.2</version>-->
<!-- <scope>runtime</scope>-->
<!-- </dependency>-->
<!-- <!– 图片识别 start –>-->
<!-- <dependency>-->
<!-- <groupId>net.sourceforge.tess4j</groupId>-->
<!-- <artifactId>tess4j</artifactId>-->
<!-- <version>5.7.0</version>-->
<!-- </dependency>-->
<!-- <!– 解决输出的时候 slf4j 报错 –>-->
<!-- <dependency>-->
<!-- <groupId>org.slf4j</groupId>-->
<!-- <artifactId>slf4j-api</artifactId>-->
<!-- <version>1.8.0-beta4</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.slf4j</groupId>-->
<!-- <artifactId>slf4j-simple</artifactId>-->
<!-- <version>1.8.0-beta4</version>-->
<!-- </dependency>-->
<!-- 图片识别 end -->
</dependencies>
</project>
application.properties文件配置
#设置端口
#server.port=8080
#Druid是一个流行的数据库连接池,它提供了强大的监控和扩展功能,比标准的HikariCP或Tomcat连接池更加灵活
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/s0?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# Druid特定配置
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.max-wait=60000
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
spring.datasource.druid.filter.stat.enabled=true
spring.datasource.druid.filter.stat.slow-sql-millis=5000
#MyBatis-Plus会使用标准输出(通常是控制台)作为日志输出目标。这意味着所有的日志信息都会直接打印到控制台上,方便开发者在开发过程中查看和调试。
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#这个配置项就是用来指定逻辑删除字段的值。在这里,1 表示当记录的状态字段值为 1 时,该记录被认为是已删除的,deleted=0 表示记录未被删除,你需要在实体类中对应的状态字段上添加 @TableLogic 注解,以告诉 MyBatis-Plus 这个字段是用于逻辑删除的
#mybatis-plus.global-config.db-config.logic-delete-value=1
#mybatis-plus.global-config.db-config.logic-not-delete-value=0
#允许循环依赖
spring.main.allow-circular-references=true
#MyBatis 会自动将数据库中的下划线命名(snake_case)转换为 Java 对象中的驼峰命名(camelCase),不设置查询结果会为null
#mybatis.configuration.map-underscore-to-camel-case=true
#这个属性用于配置 Jackson(一个用于处理 JSON 的 Java 库)如何序列化(将 Java 对象转换为 JSON 字符串)和反序列化(将 JSON 字符串转换为 Java 对象)日期和时间对象
#spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#这个属性设置了 Jackson 在序列化和反序列化日期和时间对象时使用的时区。在这里,它被设置为 GMT+8,即东八区的时间,这通常是中国、新加坡、马来西亚和菲律宾等国家或地区所使用的时区
#spring.jackson.time-zone=GMT+8
#这个属性用于配置 Spring Boot 应用的 HTTP 请求字符编码。当设置为 true 时,它将强制 Spring Boot 应用在读取 HTTP 请求时使用指定的字符编码。这通常用于确保请求数据的正确性,特别是当客户端发送的数据包含非 ASCII 字符时
#server.servlet.encoding.force-request=true
#这个属性指定了 HTTP 请求和响应的字符编码。当 server.servlet.encoding.force-request 或 server.servlet.encoding.force-response(虽然配置中没有列出后者,但通常也会一起使用)被设置为 true 时,Spring Boot 应用将使用此属性指定的字符编码来读取请求和写入响应。UTF-8 是一种非常流行的字符编码,能够表示几乎所有的 Unicode 字符
#server.servlet.encoding.charset=UTF-8
#这个属性是一个简化的设置,它同时启用了 server.servlet.encoding.force-request 和 server.servlet.encoding.force-response(如果后者没有被明确设置)。当设置为 true 时,它将强制 Spring Boot 应用在读取 HTTP 请求和写入 HTTP 响应时使用指定的字符编码(即 server.servlet.encoding.charset 中指定的编码)。
#server.servlet.encoding.force=true
## 配置swagger文档的访问路径,访问地址:
#http://localhost:8080/swagger-ui.html
#http://localhost:8080//doc.html
## 上传单个文件的最大值为10MB
#spring.servlet.multipart.max-file-size=100MB
## 单次请求中, 上传的所有文件总大小最大为10MB
#spring.servlet.multipart.max-request-size=100MB
#
## http://10.211.55.9:8080/swagger-ui/index.html#
## http://47.97.71.69:8080/swagger-ui/index.html#
# sftp root@XXX
#mac查询端口进程
#lsof -i:端口号
#lsof -i:8080
#杀进程
#kill pid