SpringBoot項目依賴和配置最新示例講解
maven依賴及一些配置
這里主要是搭建項目常用到的maven依賴以及搭建項目會需要用到的一些配置文件,可能下面這些依賴還不是很全,但是應(yīng)該會滿足日常大部分的需求了
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坐標(biāo)
<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>
數(shù)據(jù)庫相關(guān)
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>
緩存相關(guān)
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 用戶認(rèn)證相關(guān)
<!--jwt依賴-->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>4.0.0</version>
</dependency>
打包相關(guān)
spring-boot-loader依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-loader</artifactId>
</dependency>
Json 相關(guān)
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>
常用開發(fā)工具類
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>
接口文檔相關(guān)
Swagger2依賴
添加了Swagger依賴和更換Swagger依賴的默認(rèn)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相關(guān)的依賴
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:
# 激活的環(huán)境
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 默認(rèn)的連接池
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:
#在映射實體或者屬性時,將數(shù)據(jù)庫中表名和字段名中的下劃線去掉,按照駝峰命名法映射
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具體參數(shù)
* @return 返回一個docket配置參數(shù)
*/
@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("發(fā)票管理系統(tǒng)")
.version("1.0.2")
.description("接口文檔")
.contact(contact)
.build();
}
}
添加靜態(tài)資源過濾,如果有添加過濾器和攔截器,也需要在攔截器或者過濾器中放行相關(guān)的url*
/**
* 設(shè)置靜態(tài)資源
* @param registry ResourceHandlerRegistry
*/
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("開始進(jìn)行靜態(tài)資源映射...");
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/");
}相關(guān)的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 常用的響應(yīng)封裝類
/**
* 返回對象
*
*@author zhanglianyong
*@date 2022/8/5
*/
@Data
@ApiModel("統(tǒng)一返回類")
public class Response<T> implements Serializable {
/**
* 編碼:1成功,0和其它數(shù)字為失敗
*/
@ApiModelProperty("狀態(tài)碼,統(tǒng)一200為成功")
private Integer code;
/**
* 錯誤信息
*/
@ApiModelProperty("返回信息,錯誤信息")
private String message;
/**
* 數(shù)據(jù)
*/
@ApiModelProperty("返回數(shù)據(jù)")
private T data;
/**
* 動態(tài)數(shù)據(jù)
*/
@ApiModelProperty("動態(tài)數(shù)據(jù)")
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 基礎(chǔ)異常類BaseException
/**
* 基礎(chǔ)異常
*
*@author zhanglianyong
*@date 2022/8/4
*/
public class BaseException extends RuntimeException {
private static final long serialVersionUID = 1L;
/**
* 編碼:1成功,0和其它數(shù)字為失敗
*/
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;
}
}
到此這篇關(guān)于SpringBoot項目依賴和配置的文章就介紹到這了,更多相關(guān)SpringBoot項目依賴內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何通過??低曉O(shè)備網(wǎng)絡(luò)SDK進(jìn)行Java二次開發(fā)攝像頭車牌識別詳解
這篇文章主要介紹了如何通過海康威視設(shè)備網(wǎng)絡(luò)SDK進(jìn)行Java二次開發(fā)攝像頭車牌識別的相關(guān)資料,描述了如何使用??低曉O(shè)備網(wǎng)絡(luò)SDK進(jìn)行車牌識別和圖片抓拍的開發(fā)流程,包括遇到的問題及其解決辦法,需要的朋友可以參考下2025-02-02
MyBatis Plus Mapper CRUD接口測試方式
在數(shù)據(jù)庫管理系統(tǒng)中,插入記錄是添加新數(shù)據(jù)條目,而刪除操作包括根據(jù)主鍵ID單條刪除和批量刪除,也可以基于特定條件進(jìn)行刪除,刪除操作的SQL語句是通過鍵值對在Map中拼接而成,如delete from 表 where key1=value1 AND key2=value22024-09-09
Spring init-method與destroy-method屬性的用法解析
這篇文章主要介紹了Spring init-method與destroy-method屬性的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java創(chuàng)建線程池為什么一定要用ThreadPoolExecutor
本文介紹了Java創(chuàng)建線程池為什么一定要用ThreadPoolExecutor,手動方式使用ThreadPoolExecutor創(chuàng)建線程池和使用Executors執(zhí)行器自動創(chuàng)建線程池,下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-05-05
SpringBoot創(chuàng)建監(jiān)聽器的方法示例
在Java中,監(jiān)聽器(Listener)是一種設(shè)計模式,它允許對象在 特定事件 發(fā)生時 自動執(zhí)行某些操作,這種設(shè)計模式通常用于實現(xiàn) 發(fā)布-訂閱模型,本文給大家介紹了SpringBoot創(chuàng)建監(jiān)聽器的方法示例,感興趣的通過可以參考一下2024-04-04
Java設(shè)計模式之解釋器模式_動力節(jié)點Java學(xué)院整理
解釋器模式是一個比較少用的模式,本人之前也沒有用過這個模式。下面我們就來一起看一下解釋器模式2017-08-08

