当前位置 : 主页 > 编程语言 > java >

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

来源:互联网 收集:自由互联 发布时间:2023-01-30
目录 maven依赖及一些配置 Spring Spring项目的依赖 SpringBoot项目 数据库相关 mysql - connector依赖 druid连接池集成boot项目 c3p0 连接池 ORM框架 缓存相关 redis 集成boot项目 Spring Cache Jedis 安全框架
目录
  • maven依赖及一些配置
    • Spring
      • Spring项目的依赖
      • SpringBoot项目
    • 数据库相关
      • mysql - connector依赖
      • druid连接池–集成boot项目
      • c3p0 连接池
      • ORM框架
    • 缓存相关
      • redis 集成boot项目
      • Spring Cache
      • Jedis
    • 安全框架
      • shiro框架
    • 常用工具类
      • jwt 用户认证相关
      • 打包相关
      • Json 相关
      • 常用开发工具类
    • 接口文档相关
      • Swagger2依赖
      • knife4j
    • Servlet 依赖
      • Flink相关的依赖
        • flink
      • 日志
        • Logging-4j
      • 配置
        • SpringBoot项目配置文件application.yml
        • Swagger文档配置SwaggerConfig
      • mybatis-plus 配置
        • Response 常用的响应封装类
          • BaseException 基础异常类BaseException

          maven依赖及一些配置

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

          Spring

          Spring项目的依赖

          <!-- Spring框架 -->
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-webmvc</artifactId>
              <version>5.3.9</version>
          </dependency>
          <!-- AOP -->
          <dependency>
              <groupId>org.aspectj</groupId>
              <artifactId>aspectjweaver</artifactId>
              <version>1.9.7</version>
          </dependency>

          SpringBoot项目

          parent坐标

          <parent>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-parent</artifactId>
              <version>2.3.4.RELEASE</version>
          </parent>

          starter依赖

          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter</artifactId>
          </dependency>
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-test</artifactId>
              <scope>test</scope>
          </dependency>

          web starter 依赖

          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
          </dependency>
          

          devtoos依赖

          开启SpringBoot项目热部署

          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-devtools</artifactId>
              <optional>true</optional>
          </dependency>
          

          数据库相关

          mysql - connector依赖

          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>8.0.24</version>
          </dependency>
          

          druid连接池–集成boot项目

          <dependency>
              <groupId>com.alibaba</groupId>
              <artifactId>druid-spring-boot-starter</artifactId>
              <version>1.1.23</version>
          </dependency>
          

          c3p0 连接池

          <!-- C3P0连接池-->
          <dependency>
              <groupId>com.mchange</groupId>
              <artifactId>c3p0</artifactId>
              <version>0.9.5.2</version>
          </dependency>
          

          ORM框架

          MyBatis

          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>3.5.6</version>
          </dependency>
          

          MyBatis 集成Spring

          <!-- MyBatis整合Spring -->
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis-spring</artifactId>
              <version>2.0.6</version>
          </dependency>
          

          MyBatis-plus依赖

          <dependency>
              <groupId>com.baomidou</groupId>
              <artifactId>mybatis-plus-boot-starter</artifactId>
              <version>3.4.2</version>
          </dependency>
          

          mybatis-plus代码生成器

          <dependency>
              <groupId>com.baomidou</groupId>
              <artifactId>mybatis-plus-generator</artifactId>
              <version>3.2.0</version>
          </dependency>
          

          缓存相关

          redis 集成boot项目

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

          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-data-redis</artifactId>
          </dependency>
          

          Spring Cache

          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-cache</artifactId>
          </dependency>
          

          Jedis

          <!-- 使用JRedis来操作Redis-->
          <dependency>
              <groupId>redis.clients</groupId>
              <artifactId>jedis</artifactId>
              <version>2.8.0</version>
          </dependency>
          

          安全框架

          shiro框架

          <!--添加shiro框架-->
          <dependency>
              <groupId>org.apache.shiro</groupId>
              <artifactId>shiro-spring-boot-web-starter</artifactId>
              <version>1.9.0</version>
          </dependency>  
          

          Spring Security

          <!--Spring security 依赖-->
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-security</artifactId>
          </dependency>
          

          常用工具类

          jwt 用户认证相关

          <!--jwt依赖-->
          <dependency>
              <groupId>com.auth0</groupId>
              <artifactId>java-jwt</artifactId>
              <version>4.0.0</version>
          </dependency>
          

          打包相关

          spring-boot-loader依赖

          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-loader</artifactId>
          </dependency>
          

          Json 相关

          org.json

          <dependency>
              <groupId>org.json</groupId>
              <artifactId>json</artifactId>
              <version>20160810</version>
          </dependency>
          

          fastjson

          <dependency>
              <groupId>com.alibaba</groupId>
              <artifactId>fastjson</artifactId>
              <version>1.2.76</version>
          </dependency>
          

          常用开发工具类

          commons-lang

          <dependency>
              <groupId>commons-lang</groupId>
              <artifactId>commons-lang</artifactId>
              <version>2.6</version>
          </dependency>
          

          lombok依赖

          <dependency>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
              <version>1.18.12</version>
              <scope>provided</scope>
          </dependency>
          

          junit测试工具类

          <!-- JUnit -->
          <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>4.12</version>
              <scope>test</scope>
          </dependency>
          

          Http工具类

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

          <!-- 普通的HTTPCLIENT -->
          <dependency>
              <groupId>org.apache.httpcomponents</groupId>
              <artifactId>httpclient</artifactId>
              <version>4.5.6</version>
          </dependency>
          <!-- 异步的高效的HTTPCLIENT -->
          <dependency>
              <groupId>org.apache.httpcomponents</groupId>
              <artifactId>httpasyncclient</artifactId>
              <version>4.1.4</version>
          </dependency>
          

          接口文档相关

          Swagger2依赖

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

          <dependency>
              <groupId>io.springfox</groupId>
              <artifactId>springfox-swagger2</artifactId>
              <version>2.7.0</version>
          </dependency>  
          <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
          <dependency>
              <groupId>com.github.xiaoymin</groupId>
              <artifactId>swagger-bootstrap-ui</artifactId>
              <version>1.9.1</version>
          </dependency>
          

          knife4j

          <dependency>
              <groupId>com.github.xiaoymin</groupId>
              <artifactId>knife4j-spring-boot-starter</artifactId>
              <version>3.0.2</version>
          </dependency>
          

          Servlet 依赖

          <dependency>
              <groupId>javax.servlet</groupId>
              <artifactId>javax.servlet-api</artifactId>
              <version>4.0.1</version>
              <scope>provided</scope>
          </dependency>
          

          Flink相关的依赖

          flink

          <!--<flink.version>1.12.1</flink.version>-->
          <!--<scala.binary.version>2.12</scala.binary.version>-->
          <dependency>
              <groupId>org.apache.flink</groupId>
              <artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
              <version>${flink.version}</version>
          </dependency>
          <dependency>
              <groupId>org.apache.flink</groupId>
              <artifactId>flink-clients_${scala.binary.version}</artifactId>
              <version>${flink.version}</version>
          </dependency>

          集成kafka

          <dependency>
              <groupId>org.apache.flink</groupId>
              <artifactId>flink-connector-kafka_${scala.binary.version}</artifactId>
              <version>${flink.version}</version>
          </dependency>

          日志

          Logging-4j

          <!--<log4j.version>2.12.1</log4j.version>-->
          <dependency>
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-slf4j-impl</artifactId>
              <version>${log4j.version}</version>
          </dependency>
          <dependency>
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-api</artifactId>
              <version>${log4j.version}</version>
          </dependency>
          <dependency>
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-core</artifactId>
              <version>${log4j.version}</version>
          </dependency>

          配置

          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<T>  implements Serializable {
          
              /**
               * 编码:1成功,0和其它数字为失败
               */
              @ApiModelProperty("状态码,统一200为成功")
              private Integer code;
              /**
               * 错误信息
               */
              @ApiModelProperty("返回信息,错误信息")
              private String message;
              /**
               * 数据
               */
              @ApiModelProperty("返回数据")
              private T data;
              /**
               * 动态数据
               */
              @ApiModelProperty("动态数据")
              private Map<String, Object> map = new HashMap<>();
          
              public Response() {
              }
          
              public static <T> Response<T> successWithMessage(String message) {
                  Response<T> r = new Response<>();
                  r.message = message;
                  r.data = null;
                  r.code = HttpStatus.OK.value();
                  return r;
              }
          
              public static <T> Response<T> success(T object) {
                  Response<T> r = new Response<>();
                  r.data = object;
                  r.code = HttpStatus.OK.value();
                  return r;
              }
          
              public static Response<String> 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 <T> Response<T> error(String message, int code) {
                  Response<T> r = new Response<>();
                  r.message = message;
                  r.code = code;
                  return r;
              }
          
              public static <T> Response<T> common(int code, String message) {
                  Response<T> 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项目依赖内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

          上一篇:Java8新特性&nbsp;StreamAPI实例详解
          下一篇:没有了
          网友评论