软件编程
位置:首页>> 软件编程>> java编程>> SpringBoot项目依赖和配置最新示例讲解

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

作者:宏远十一冠王  发布时间:2021-08-13 23:04:23 

标签:SpringBoot,项目依赖,配置

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连接池&ndash;集成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;
   }

}

来源:https://blog.csdn.net/zly03/article/details/127631115

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com