中国红客联盟国际站
联盟介绍
联盟架构
联盟章程
发展历程
联盟邮箱
积分VIP
捐助联盟
收藏本站
请登录
立即注册
门户首页
交流社区
BBS
技术圈子
Group
关于我们
红客大事记
插件
Plugin
搜索
本版
文章
帖子
用户
请
登录
后使用快捷导航
没有账号?
立即注册
俄罗斯方块
当前位置:
»
交流社区
›
中国红客联盟【技术分享区】
›
编程脚本交流
›
SpringBoot项目依赖和配置最新示例讲解
点赞
0
收藏
0
回复
[JAVA]
SpringBoot项目依赖和配置最新示例讲解
2526
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项目的依赖
<!-- 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项目依赖内容请搜索中国红客联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持中国红客联盟!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
王子
创始人
关注
1101
主题
105
粉丝
59
关注
这家伙很懒,什么都没留下!
JavaScript中常见的几种获取元素的方式
2023-5-18
TypeScript接口和类型的区别小结
2023-5-17
一文搞懂parseInt()函数异常行为
2023-5-17
vue项目打包部署跨域的实现步骤
2023-5-17
细说JS数组遍历的一些细节及实现
2023-5-17
发新帖
新人须知
新手指南
积分奖惩
常见问题
发贴操作
忘记密码
删帖申诉
投诉举报
关于我们
联系我们
管理团队
发展历程
安全保障
中国红客联盟公众号
联系站长
QQ:5520533
admin@chnhonker.com
Copyright © 2001-2025
Discuz Team.
Powered by
Discuz!
X3.5
(
粤ICP备13060014号
)
|
天天打卡
本站已运行
天