IT俱乐部 Java SpringBoot项目依赖和配置最新示例讲解

SpringBoot项目依赖和配置最新示例讲解

maven依赖及一些配置

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

Spring

Spring项目的依赖

org.springframeworkspring-webmvc5.3.9org.aspectjaspectjweaver1.9.7

SpringBoot项目

parent坐标

org.springframework.bootspring-boot-starter-parent2.3.4.RELEASE

starter依赖

org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-testtest

web starter 依赖

org.springframework.bootspring-boot-starter-web

devtoos依赖

开启SpringBoot项目热部署

org.springframework.bootspring-boot-devtoolstrue

数据库相关

mysql – connector依赖

mysqlmysql-connector-java8.0.24

druid连接池–集成boot项目

com.alibabadruid-spring-boot-starter1.1.23

c3p0 连接池

com.mchangec3p00.9.5.2

ORM框架

MyBatis

org.mybatismybatis3.5.6

MyBatis 集成Spring

org.mybatismybatis-spring2.0.6

MyBatis-plus依赖

com.baomidoumybatis-plus-boot-starter3.4.2

mybatis-plus代码生成器

com.baomidoumybatis-plus-generator3.2.0

缓存相关

redis 集成boot项目

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

org.springframework.bootspring-boot-starter-data-redis

Spring Cache

org.springframework.bootspring-boot-starter-cache

Jedis

redis.clientsjedis2.8.0

安全框架

shiro框架

org.apache.shiroshiro-spring-boot-web-starter1.9.0

Spring Security

org.springframework.bootspring-boot-starter-security

常用工具类

jwt 用户认证相关

com.auth0java-jwt4.0.0

打包相关

spring-boot-loader依赖

org.springframework.bootspring-boot-loader

Json 相关

org.json

org.jsonjson20160810

fastjson

com.alibabafastjson1.2.76

常用开发工具类

commons-lang

commons-langcommons-lang2.6

lombok依赖

org.projectlomboklombok1.18.12provided

junit测试工具类

junitjunit4.12test

Http工具类

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

org.apache.httpcomponentshttpclient4.5.6org.apache.httpcomponentshttpasyncclient4.1.4

接口文档相关

Swagger2依赖

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

io.springfoxspringfox-swagger22.7.0com.github.xiaoyminswagger-bootstrap-ui1.9.1

knife4j

com.github.xiaoyminknife4j-spring-boot-starter3.0.2

Servlet 依赖

javax.servletjavax.servlet-api4.0.1provided

Flink相关的依赖

flink


org.apache.flinkflink-streaming-java_${scala.binary.version}${flink.version}org.apache.flinkflink-clients_${scala.binary.version}${flink.version}

集成kafka

org.apache.flinkflink-connector-kafka_${scala.binary.version}${flink.version}

日志

Logging-4j

org.apache.logging.log4jlog4j-slf4j-impl${log4j.version}org.apache.logging.log4jlog4j-api${log4j.version}org.apache.logging.log4jlog4j-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;
    }

}

到此这篇关于SpringBoot项目依赖和配置的文章就介绍到这了,更多相关SpringBoot项目依赖内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!

本文收集自网络,不代表IT俱乐部立场,转载请注明出处。https://www.2it.club/code/java/4269.html
上一篇
下一篇
联系我们

联系我们

在线咨询: QQ交谈

邮箱: 1120393934@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部