搭建SpringBoot项目依赖和配置快速篇

搭建SpringBoot项目依赖和配置快速篇

maven依赖及一些配置

这里主要是搭建项目常用到的maven依赖以及搭建项目会需要用到的一些配置文件,可能下面这些依赖还不是很全,但是应该会满足日常大部分的需求了

Spring

Spring项目的依赖

org.springframework

spring-webmvc

5.3.9

org.aspectj

aspectjweaver

1.9.7

SpringBoot项目

parent坐标

org.springframework.boot

spring-boot-starter-parent

2.3.4.RELEASE

starter依赖

org.springframework.boot

spring-boot-starter

org.springframework.boot

spring-boot-starter-test

test

web starter 依赖

org.springframework.boot

spring-boot-starter-web

devtoos依赖

开启SpringBoot项目热部署

org.springframework.boot

spring-boot-devtools

true

数据库相关

mysql - connector依赖

mysql

mysql-connector-java

8.0.24

druid连接池–集成boot项目

com.alibaba

druid-spring-boot-starter

1.1.23

c3p0 连接池

com.mchange

c3p0

0.9.5.2

ORM框架

MyBatis

org.mybatis

mybatis

3.5.6

MyBatis 集成Spring

org.mybatis

mybatis-spring

2.0.6

MyBatis-plus依赖

com.baomidou

mybatis-plus-boot-starter

3.4.2

mybatis-plus代码生成器

com.baomidou

mybatis-plus-generator

3.2.0

缓存相关

redis 集成boot项目

添加的是spring-data-redis的依赖

org.springframework.boot

spring-boot-starter-data-redis

Spring Cache

org.springframework.boot

spring-boot-starter-cache

Jedis

redis.clients

jedis

2.8.0

安全框架

shiro框架

org.apache.shiro

shiro-spring-boot-web-starter

1.9.0

Spring Security

org.springframework.boot

spring-boot-starter-security

常用工具类

jwt 用户认证相关

com.auth0

java-jwt

4.0.0

打包相关

spring-boot-loader依赖

org.springframework.boot

spring-boot-loader

Json 相关

org.json

org.json

json

20160810

fastjson

com.alibaba

fastjson

1.2.76

常用开发工具类

commons-lang

commons-lang

commons-lang

2.6

lombok依赖

org.projectlombok

lombok

1.18.12

provided

junit测试工具类

junit

junit

4.12

test

Http工具类

普通的是一般的Http请求,第二个是异步请求的工具类

org.apache.httpcomponents

httpclient

4.5.6

org.apache.httpcomponents

httpasyncclient

4.1.4

接口文档相关

Swagger2依赖

添加了Swagger依赖和更换Swagger依赖的默认UI,采用了bootstrap-ui面板

io.springfox

springfox-swagger2

2.7.0

com.github.xiaoymin

swagger-bootstrap-ui

1.9.1

knife4j

com.github.xiaoymin

knife4j-spring-boot-starter

3.0.2

Servlet 依赖

javax.servlet

javax.servlet-api

4.0.1

provided

Flink相关的依赖

flink

org.apache.flink

flink-streaming-java_${scala.binary.version}

${flink.version}

org.apache.flink

flink-clients_${scala.binary.version}

${flink.version}

集成kafka

org.apache.flink

flink-connector-kafka_${scala.binary.version}

${flink.version}

日志

Logging-4j

org.apache.logging.log4j

log4j-slf4j-impl

${log4j.version}

org.apache.logging.log4j

log4j-api

${log4j.version}

org.apache.logging.log4j

log4j-core

${log4j.version}

配置

SpringBoot项目配置文件application.yml

# 运行端口

server:

port: 9527

spring:

# 激活的环境

profiles:

active: dev

application:

name: reimbursementSystem

servlet:

multipart:

max-file-size: 10MB

max-request-size: 10MB

datasource:

# druid:

# driver-class-name: com.mysql.cj.jdbc.Driver

# url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true

# username: root

# password: 123456

# maxActive: 100

# initialSize: 10

# spring 默认的连接池

url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true

username: root

password: 123456

driver-class-name: com.mysql.cj.jdbc.Driver

添加redis

redis:

host: localhost

port: 6379

password: 123456

database: 0

添加mybatis-plus

mybatis-plus:

configuration:

#在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射

map-underscore-to-camel-case: true

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

global-config:

db-config:

id-type: ASSIGN_ID

添加Mybatis

mybatis:

mapper-location: classpath:/mapper/*.xml

shiro

shiro:

loginUrl: /user/login

Swagger文档配置SwaggerConfig

@Configuration

@EnableSwagger2

public class SwaggerConfig {

/**

* 配置docket以配置Swagger具体参数

* @return 返回一个docket配置参数

*/

@Bean

public Docket docket(){

return new Docket(DocumentationType.SWAGGER_2)

.apiInfo(apiInfo())

.select()

.apis(RequestHandlerSelectors.basePackage("com.group.reimbursement.controller"))

.paths(PathSelectors.any())

.build();

}

/**

* Api的信息

* @return ApiInfo

*/

private ApiInfo apiInfo(){

Contact contact = new Contact("张连勇、林良怀","https://blog.csdn.net/zly03?spm=1000.2115.3001.5343","lyzhang@163.com");

return new ApiInfoBuilder()

.title("发票管理系统")

.version("1.0.2")

.description("接口文档")

.contact(contact)

.build();

}

}

添加静态资源过滤,如果有添加过滤器和拦截器,也需要在拦截器或者过滤器中放行相关的url*

/**

* 设置静态资源

* @param registry ResourceHandlerRegistry

*/

@Override

protected void addResourceHandlers(ResourceHandlerRegistry registry) {

log.info("开始进行静态资源映射...");

registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");

registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");

registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");

}

相关的url

.excludePathPatterns("/doc.html/**")

.excludePathPatterns("/swagger-ui.html/**")

.excludePathPatterns("/webjars/**")

mybatis-plus 配置

/**

* 配置分页插件

*

*@author zhanglianyong

*@date 2022/8/5

*/

@Configuration

public class MybatisPlusConfig {

@Bean

public MybatisPlusInterceptor mybatisPlusInterceptor() {

MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();

mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());

return mybatisPlusInterceptor;

}

}

Response 常用的响应封装类

/**

* 返回对象

*

*@author zhanglianyong

*@date 2022/8/5

*/

@Data

@ApiModel("统一返回类")

public class Response implements Serializable {

/**

* 编码:1成功,0和其它数字为失败

*/

@ApiModelProperty("状态码,统一200为成功")

private Integer code;

/**

* 错误信息

*/

@ApiModelProperty("返回信息,错误信息")

private String message;

/**

* 数据

*/

@ApiModelProperty("返回数据")

private T data;

/**

* 动态数据

*/

@ApiModelProperty("动态数据")

private Map map = new HashMap<>();

public Response() {

}

public static Response successWithMessage(String message) {

Response r = new Response<>();

r.message = message;

r.data = null;

r.code = HttpStatus.OK.value();

return r;

}

public static Response success(T object) {

Response r = new Response<>();

r.data = object;

r.code = HttpStatus.OK.value();

return r;

}

public static Response buildJsonString(Object object) throws JsonProcessingException {

String jsonString = toJsonString(object);

return Response.success(jsonString);

}

private static String toJsonString(Object object) throws JsonProcessingException {

ObjectMapper mapper = new ObjectMapper();

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

mapper.setDateFormat(df);

return mapper.writeValueAsString(object);

}

public static Response error(String message, int code) {

Response r = new Response<>();

r.message = message;

r.code = code;

return r;

}

public static Response common(int code, String message) {

Response result = new Response<>();

result.setCode(code);

result.setMessage(message);

return result;

}

public Integer getCode() {

return code;

}

public void setCode(Integer code) {

this.code = code;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

public T getData() {

return data;

}

public void setData(T data) {

this.data = data;

}

public Response(Integer code, String message, T data) {

this.code = code;

this.message = message;

this.data = data;

}

}

BaseException 基础异常类BaseException

/**

* 基础异常

*

*@author zhanglianyong

*@date 2022/8/4

*/

public class BaseException extends RuntimeException {

private static final long serialVersionUID = 1L;

/**

* 编码:1成功,0和其它数字为失败

*/

private Integer code;

/**

* 错误信息

*/

private String message;

public BaseException(String message) {

this.message = message;

}

public BaseException(String message, Throwable cause, Integer code, String message1) {

super(message, cause);

this.code = code;

this.message = message1;

}

public BaseException(String message, Integer code) {

this.code = code;

this.message = message;

}

public Integer getCode() {

return code;

}

public void setCode(Integer code) {

this.code = code;

}

@Override

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}

相关推荐

120个常见的意思相近的成语辨析
beat365手机网址

120个常见的意思相近的成语辨析

🕒 08-12 👀 2015
飞机时速多少(飞机时速多少才能起飞)
beat365手机网址

飞机时速多少(飞机时速多少才能起飞)

🕒 07-26 👀 6559