SpringBoot项目依赖和配置最新示例讲解
作者:宏远十一冠王
这篇文章主要介绍了SpringBoot项目依赖和配置,这里主要是搭建项目常用到的maven依赖以及搭建项目会需要用到的一些配置文件,本文通过示例代码给大家详细讲解,需要的朋友可以参考下
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项目依赖内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!