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

2527 0
王子 2022-11-8 16:57:04 | 显示全部楼层 |阅读模式
目录

    maven依赖及一些配置
      Spring
        Spring项目的依赖SpringBoot项目
      数据库相关
        mysql - connector依赖druid连接池–集成boot项目c3p0 连接池ORM框架
      缓存相关
        redis 集成boot项目Spring CacheJedis
      安全框架
        shiro框架
      常用工具类
        jwt 用户认证相关打包相关Json 相关常用开发工具类
      接口文档相关
        Swagger2依赖knife4j
      Servlet 依赖Flink相关的依赖
        flink
      日志
        Logging-4j
      配置
        SpringBoot项目配置文件application.ymlSwagger文档配置SwaggerConfig
      mybatis-plus 配置Response 常用的响应封装类BaseException 基础异常类BaseException



maven依赖及一些配置

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

Spring


Spring项目的依赖
  1. <!-- Spring框架 -->
  2. <dependency>
  3.     <groupId>org.springframework</groupId>
  4.     <artifactId>spring-webmvc</artifactId>
  5.     <version>5.3.9</version>
  6. </dependency>
  7. <!-- AOP -->
  8. <dependency>
  9.     <groupId>org.aspectj</groupId>
  10.     <artifactId>aspectjweaver</artifactId>
  11.     <version>1.9.7</version>
  12. </dependency>
复制代码
SpringBoot项目

parent坐标
  1. <parent>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-starter-parent</artifactId>
  4.     <version>2.3.4.RELEASE</version>
  5. </parent>
复制代码
starter依赖
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-starter</artifactId>
  4. </dependency>
  5. <dependency>
  6.     <groupId>org.springframework.boot</groupId>
  7.     <artifactId>spring-boot-starter-test</artifactId>
  8.     <scope>test</scope>
  9. </dependency>
复制代码
web starter 依赖
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
复制代码
devtoos依赖
开启SpringBoot项目热部署
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-devtools</artifactId>
  4.     <optional>true</optional>
  5. </dependency>
复制代码
数据库相关


mysql - connector依赖
  1. <dependency>
  2.     <groupId>mysql</groupId>
  3.     <artifactId>mysql-connector-java</artifactId>
  4.     <version>8.0.24</version>
  5. </dependency>
复制代码
druid连接池–集成boot项目
  1. <dependency>
  2.     <groupId>com.alibaba</groupId>
  3.     <artifactId>druid-spring-boot-starter</artifactId>
  4.     <version>1.1.23</version>
  5. </dependency>
复制代码
c3p0 连接池
  1. <!-- C3P0连接池-->
  2. <dependency>
  3.     <groupId>com.mchange</groupId>
  4.     <artifactId>c3p0</artifactId>
  5.     <version>0.9.5.2</version>
  6. </dependency>
复制代码
ORM框架

MyBatis
  1. <dependency>
  2.     <groupId>org.mybatis</groupId>
  3.     <artifactId>mybatis</artifactId>
  4.     <version>3.5.6</version>
  5. </dependency>
复制代码
MyBatis 集成Spring
  1. <!-- MyBatis整合Spring -->
  2. <dependency>
  3.     <groupId>org.mybatis</groupId>
  4.     <artifactId>mybatis-spring</artifactId>
  5.     <version>2.0.6</version>
  6. </dependency>
复制代码
MyBatis-plus依赖
  1. <dependency>
  2.     <groupId>com.baomidou</groupId>
  3.     <artifactId>mybatis-plus-boot-starter</artifactId>
  4.     <version>3.4.2</version>
  5. </dependency>
复制代码
mybatis-plus代码生成器
  1. <dependency>
  2.     <groupId>com.baomidou</groupId>
  3.     <artifactId>mybatis-plus-generator</artifactId>
  4.     <version>3.2.0</version>
  5. </dependency>
复制代码
缓存相关


redis 集成boot项目

添加的是spring-data-redis的依赖
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-starter-data-redis</artifactId>
  4. </dependency>
复制代码
Spring Cache
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-starter-cache</artifactId>
  4. </dependency>
复制代码
Jedis
  1. <!-- 使用JRedis来操作Redis-->
  2. <dependency>
  3.     <groupId>redis.clients</groupId>
  4.     <artifactId>jedis</artifactId>
  5.     <version>2.8.0</version>
  6. </dependency>
复制代码
安全框架


shiro框架
  1. <!--添加shiro框架-->
  2. <dependency>
  3.     <groupId>org.apache.shiro</groupId>
  4.     <artifactId>shiro-spring-boot-web-starter</artifactId>
  5.     <version>1.9.0</version>
  6. </dependency>  
复制代码
Spring Security
  1. <!--Spring security 依赖-->
  2. <dependency>
  3.     <groupId>org.springframework.boot</groupId>
  4.     <artifactId>spring-boot-starter-security</artifactId>
  5. </dependency>
复制代码
常用工具类


jwt 用户认证相关
  1. <!--jwt依赖-->
  2. <dependency>
  3.     <groupId>com.auth0</groupId>
  4.     <artifactId>java-jwt</artifactId>
  5.     <version>4.0.0</version>
  6. </dependency>
复制代码
打包相关

spring-boot-loader依赖
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-loader</artifactId>
  4. </dependency>
复制代码
Json 相关

org.json
  1. <dependency>
  2.     <groupId>org.json</groupId>
  3.     <artifactId>json</artifactId>
  4.     <version>20160810</version>
  5. </dependency>
复制代码
fastjson
  1. <dependency>
  2.     <groupId>com.alibaba</groupId>
  3.     <artifactId>fastjson</artifactId>
  4.     <version>1.2.76</version>
  5. </dependency>
复制代码
常用开发工具类

commons-lang
  1. <dependency>
  2.     <groupId>commons-lang</groupId>
  3.     <artifactId>commons-lang</artifactId>
  4.     <version>2.6</version>
  5. </dependency>
复制代码
lombok依赖
  1. <dependency>
  2.     <groupId>org.projectlombok</groupId>
  3.     <artifactId>lombok</artifactId>
  4.     <version>1.18.12</version>
  5.     <scope>provided</scope>
  6. </dependency>
复制代码
junit测试工具类
  1. <!-- JUnit -->
  2. <dependency>
  3.     <groupId>junit</groupId>
  4.     <artifactId>junit</artifactId>
  5.     <version>4.12</version>
  6.     <scope>test</scope>
  7. </dependency>
复制代码
Http工具类
普通的是一般的Http请求,第二个是异步请求的工具类
  1. <!-- 普通的HTTPCLIENT -->
  2. <dependency>
  3.     <groupId>org.apache.httpcomponents</groupId>
  4.     <artifactId>httpclient</artifactId>
  5.     <version>4.5.6</version>
  6. </dependency>
  7. <!-- 异步的高效的HTTPCLIENT -->
  8. <dependency>
  9.     <groupId>org.apache.httpcomponents</groupId>
  10.     <artifactId>httpasyncclient</artifactId>
  11.     <version>4.1.4</version>
  12. </dependency>
复制代码
接口文档相关


Swagger2依赖

添加了Swagger依赖和更换Swagger依赖的默认UI,采用了bootstrap-ui面板
  1. <dependency>
  2.     <groupId>io.springfox</groupId>
  3.     <artifactId>springfox-swagger2</artifactId>
  4.     <version>2.7.0</version>
  5. </dependency>  
  6. <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
  7. <dependency>
  8.     <groupId>com.github.xiaoymin</groupId>
  9.     <artifactId>swagger-bootstrap-ui</artifactId>
  10.     <version>1.9.1</version>
  11. </dependency>
复制代码
knife4j
  1. <dependency>
  2.     <groupId>com.github.xiaoymin</groupId>
  3.     <artifactId>knife4j-spring-boot-starter</artifactId>
  4.     <version>3.0.2</version>
  5. </dependency>
复制代码
Servlet 依赖
  1. <dependency>
  2.     <groupId>javax.servlet</groupId>
  3.     <artifactId>javax.servlet-api</artifactId>
  4.     <version>4.0.1</version>
  5.     <scope>provided</scope>
  6. </dependency>
复制代码
Flink相关的依赖


flink
  1. <!--<flink.version>1.12.1</flink.version>-->
  2. <!--<scala.binary.version>2.12</scala.binary.version>-->
  3. <dependency>
  4.     <groupId>org.apache.flink</groupId>
  5.     <artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
  6.     <version>${flink.version}</version>
  7. </dependency>
  8. <dependency>
  9.     <groupId>org.apache.flink</groupId>
  10.     <artifactId>flink-clients_${scala.binary.version}</artifactId>
  11.     <version>${flink.version}</version>
  12. </dependency>
复制代码
集成kafka
  1. <dependency>
  2.     <groupId>org.apache.flink</groupId>
  3.     <artifactId>flink-connector-kafka_${scala.binary.version}</artifactId>
  4.     <version>${flink.version}</version>
  5. </dependency>
复制代码
日志


Logging-4j
  1. <!--<log4j.version>2.12.1</log4j.version>-->
  2. <dependency>
  3.     <groupId>org.apache.logging.log4j</groupId>
  4.     <artifactId>log4j-slf4j-impl</artifactId>
  5.     <version>${log4j.version}</version>
  6. </dependency>
  7. <dependency>
  8.     <groupId>org.apache.logging.log4j</groupId>
  9.     <artifactId>log4j-api</artifactId>
  10.     <version>${log4j.version}</version>
  11. </dependency>
  12. <dependency>
  13.     <groupId>org.apache.logging.log4j</groupId>
  14.     <artifactId>log4j-core</artifactId>
  15.     <version>${log4j.version}</version>
  16. </dependency>
复制代码
配置


SpringBoot项目配置文件application.yml
  1. # 运行端口
  2. server:
  3.   port: 9527
  4. spring:
  5. #  激活的环境
  6.   profiles:
  7.     active: dev
  8.   application:
  9.     name: reimbursementSystem
  10.   servlet:
  11.     multipart:
  12.       max-file-size: 10MB
  13.       max-request-size: 10MB
  14.   datasource:
  15. #    druid:
  16. #      driver-class-name: com.mysql.cj.jdbc.Driver
  17. #      url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
  18. #      username: root
  19. #      password: 123456
  20. #      maxActive: 100
  21. #      initialSize: 10
  22. #   spring 默认的连接池
  23.     url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
  24.     username: root
  25.     password: 123456
  26.     driver-class-name: com.mysql.cj.jdbc.Driver
复制代码
添加redis
  1. redis:
  2.     host: localhost
  3.     port: 6379
  4.     password: 123456
  5.     database: 0
复制代码
添加mybatis-plus
  1. mybatis-plus:
  2.   configuration:
  3.     #在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
  4.     map-underscore-to-camel-case: true
  5.     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  6.   global-config:
  7.     db-config:
  8.       id-type: ASSIGN_ID
复制代码
添加Mybatis
  1. mybatis:
  2.   mapper-location: classpath:/mapper/*.xml
复制代码
shiro
  1. shiro:
  2.   loginUrl: /user/login
复制代码
Swagger文档配置SwaggerConfig
  1. @Configuration
  2. @EnableSwagger2
  3. public class SwaggerConfig {
  4.     /**
  5.      * 配置docket以配置Swagger具体参数
  6.      * @return 返回一个docket配置参数
  7.      */
  8.     @Bean
  9.     public Docket docket(){
  10.         return new Docket(DocumentationType.SWAGGER_2)
  11.                 .apiInfo(apiInfo())
  12.                 .select()
  13.                 .apis(RequestHandlerSelectors.basePackage("com.group.reimbursement.controller"))
  14.                 .paths(PathSelectors.any())
  15.                 .build();
  16.     }
  17.     /**
  18.      * Api的信息
  19.      * @return ApiInfo
  20.      */
  21.     private ApiInfo apiInfo(){
  22.         Contact contact = new Contact("张连勇、林良怀","https://blog.csdn.net/zly03?spm=1000.2115.3001.5343","lyzhang@163.com");
  23.         return new ApiInfoBuilder()
  24.                 .title("发票管理系统")
  25.                 .version("1.0.2")
  26.                 .description("接口文档")
  27.                 .contact(contact)
  28.                 .build();
  29.     }
  30. }
复制代码
添加静态资源过滤,如果有添加过滤器和拦截器,也需要在拦截器或者过滤器中放行相关的url*
  1. /**
  2.      * 设置静态资源
  3.      * @param registry ResourceHandlerRegistry
  4.      */
  5.     @Override
  6.     protected void addResourceHandlers(ResourceHandlerRegistry registry) {
  7.         log.info("开始进行静态资源映射...");
  8.         registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
  9.         registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
  10.         registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
  11.     }
复制代码
相关的url
  1. .excludePathPatterns("/doc.html/**")
  2. .excludePathPatterns("/swagger-ui.html/**")
  3. .excludePathPatterns("/webjars/**")
复制代码
mybatis-plus 配置
  1. /**
  2. * 配置分页插件
  3. *
  4. *@author zhanglianyong
  5. *@date 2022/8/5
  6. */
  7. @Configuration
  8. public class MybatisPlusConfig {
  9.     @Bean
  10.     public MybatisPlusInterceptor mybatisPlusInterceptor() {
  11.         MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
  12.         mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
  13.         return mybatisPlusInterceptor;
  14.     }
  15. }
复制代码
Response 常用的响应封装类
  1. /**
  2. * 返回对象
  3. *
  4. *@author zhanglianyong
  5. *@date 2022/8/5
  6. */
  7. @Data
  8. @ApiModel("统一返回类")
  9. public class Response<T>  implements Serializable {
  10.     /**
  11.      * 编码:1成功,0和其它数字为失败
  12.      */
  13.     @ApiModelProperty("状态码,统一200为成功")
  14.     private Integer code;
  15.     /**
  16.      * 错误信息
  17.      */
  18.     @ApiModelProperty("返回信息,错误信息")
  19.     private String message;
  20.     /**
  21.      * 数据
  22.      */
  23.     @ApiModelProperty("返回数据")
  24.     private T data;
  25.     /**
  26.      * 动态数据
  27.      */
  28.     @ApiModelProperty("动态数据")
  29.     private Map<String, Object> map = new HashMap<>();
  30.     public Response() {
  31.     }
  32.     public static <T> Response<T> successWithMessage(String message) {
  33.         Response<T> r = new Response<>();
  34.         r.message = message;
  35.         r.data = null;
  36.         r.code = HttpStatus.OK.value();
  37.         return r;
  38.     }
  39.     public static <T> Response<T> success(T object) {
  40.         Response<T> r = new Response<>();
  41.         r.data = object;
  42.         r.code = HttpStatus.OK.value();
  43.         return r;
  44.     }
  45.     public static Response<String> buildJsonString(Object object) throws JsonProcessingException {
  46.         String jsonString = toJsonString(object);
  47.         return Response.success(jsonString);
  48.     }
  49.     private static String toJsonString(Object object) throws JsonProcessingException {
  50.             ObjectMapper mapper = new ObjectMapper();
  51.             DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  52.             mapper.setDateFormat(df);
  53.             return mapper.writeValueAsString(object);
  54.     }
  55.     public static <T> Response<T> error(String message, int code) {
  56.         Response<T> r = new Response<>();
  57.         r.message = message;
  58.         r.code = code;
  59.         return r;
  60.     }
  61.     public static <T> Response<T> common(int code, String message) {
  62.         Response<T> result = new Response<>();
  63.         result.setCode(code);
  64.         result.setMessage(message);
  65.         return result;
  66.     }
  67.     public Integer getCode() {
  68.         return code;
  69.     }
  70.     public void setCode(Integer code) {
  71.         this.code = code;
  72.     }
  73.     public String getMessage() {
  74.         return message;
  75.     }
  76.     public void setMessage(String message) {
  77.         this.message = message;
  78.     }
  79.     public T getData() {
  80.         return data;
  81.     }
  82.     public void setData(T data) {
  83.         this.data = data;
  84.     }
  85.     public Response(Integer code, String message, T data) {
  86.         this.code = code;
  87.         this.message = message;
  88.         this.data = data;
  89.     }
  90. }
复制代码
BaseException 基础异常类BaseException
  1. /**
  2. * 基础异常
  3. *
  4. *@author zhanglianyong
  5. *@date 2022/8/4
  6. */
  7. public class BaseException extends RuntimeException {
  8.     private static final long serialVersionUID = 1L;
  9.     /**
  10.      * 编码:1成功,0和其它数字为失败
  11.      */
  12.     private Integer code;
  13.     /**
  14.      * 错误信息
  15.      */
  16.     private String message;
  17.     public BaseException(String message) {
  18.         this.message = message;
  19.     }
  20.     public BaseException(String message, Throwable cause, Integer code, String message1) {
  21.         super(message, cause);
  22.         this.code = code;
  23.         this.message = message1;
  24.     }
  25.     public BaseException(String message, Integer code) {
  26.         this.code = code;
  27.         this.message = message;
  28.     }
  29.     public Integer getCode() {
  30.         return code;
  31.     }
  32.     public void setCode(Integer code) {
  33.         this.code = code;
  34.     }
  35.     @Override
  36.     public String getMessage() {
  37.         return message;
  38.     }
  39.     public void setMessage(String message) {
  40.         this.message = message;
  41.     }
  42. }
复制代码
到此这篇关于SpringBoot项目依赖和配置的文章就介绍到这了,更多相关SpringBoot项目依赖内容请搜索中国红客联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持中国红客联盟!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行