SpringBoot项目依赖和配置最新示例讲解
宏远十一冠王 人气:0maven依赖及一些配置
这里主要是搭建项目常用到的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; } }
加载全部内容