SpringBoot項(xiàng)目依賴和配置最新示例講解
maven依賴及一些配置
這里主要是搭建項(xiàng)目常用到的maven依賴以及搭建項(xiàng)目會(huì)需要用到的一些配置文件,可能下面這些依賴還不是很全,但是應(yīng)該會(huì)滿足日常大部分的需求了
Spring
Spring項(xiàng)目的依賴
<!-- 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項(xiàng)目
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項(xiàng)目熱部署
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
數(shù)據(jù)庫(kù)相關(guān)
mysql - connector依賴
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.24</version> </dependency>
druid連接池–集成boot項(xiàng)目
<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項(xiàng)目
添加的是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測(cè)試工具類
<!-- JUnit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency>
Http工具類
普通的是一般的Http請(qǐng)求,第二個(gè)是異步請(qǐng)求的工具類
<!-- 普通的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項(xiàng)目配置文件application.yml
# 運(yùn)行端口 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í)體或者屬性時(shí),將數(shù)據(jù)庫(kù)中表名和字段名中的下劃線去掉,按照駝峰命名法映射 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 返回一個(gè)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 配置
/** * 配置分頁(yè)插件 * *@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)封裝類
/** * 返回對(duì)象 * *@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; /** * 錯(cuò)誤信息 */ @ApiModelProperty("返回信息,錯(cuò)誤信息") private String message; /** * 數(shù)據(jù) */ @ApiModelProperty("返回?cái)?shù)據(jù)") private T data; /** * 動(dòng)態(tài)數(shù)據(jù) */ @ApiModelProperty("動(dòng)態(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; /** * 錯(cuò)誤信息 */ 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項(xiàng)目依賴和配置的文章就介紹到這了,更多相關(guān)SpringBoot項(xiàng)目依賴內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java基礎(chǔ)之?dāng)?shù)組超詳細(xì)知識(shí)總結(jié)
這篇文章主要介紹了Java基礎(chǔ)之?dāng)?shù)組詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05Mybatis-Plus集成Sharding-JDBC與Flyway實(shí)現(xiàn)多租戶分庫(kù)分表實(shí)戰(zhàn)
這篇文章主要為大家介紹了Mybatis-Plus集成Sharding-JDBC與Flyway實(shí)現(xiàn)多租戶分庫(kù)分表實(shí)戰(zhàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11HashSet工作原理_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
HashSet 底層采用 HashMap 來保存所有元素,因此 HashSet 的實(shí)現(xiàn)比較簡(jiǎn)單。接下來通過本文給大家介紹HashSet工作原理_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,需要的朋友可以參考下2017-04-04SpringBoot使用H2嵌入式數(shù)據(jù)庫(kù)的實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了SpringBoot使用H2嵌入式數(shù)據(jù)庫(kù)的相關(guān)知識(shí),代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-10-10mybatis-parameterType傳入map條件方式
這篇文章主要介紹了mybatis-parameterType傳入map條件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12IDEA 連接數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
這篇文章主要介紹了IDEA 連接數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10SpringBoot + minio實(shí)現(xiàn)分片上傳、秒傳、續(xù)傳功能
MinIO是一個(gè)基于Go實(shí)現(xiàn)的高性能、兼容S3協(xié)議的對(duì)象存儲(chǔ),使用MinIO構(gòu)建用于機(jī)器學(xué)習(xí),分析和應(yīng)用程序數(shù)據(jù)工作負(fù)載的高性能基礎(chǔ)架構(gòu),這篇文章主要介紹了SpringBoot + minio實(shí)現(xiàn)分片上傳、秒傳、續(xù)傳,需要的朋友可以參考下2023-06-06Elasticsearch中FST與前綴搜索應(yīng)用實(shí)戰(zhàn)解析
這篇文章主要為大家介紹了Elasticsearch中FST與前綴搜索應(yīng)用實(shí)戰(zhàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08SpringBoot中各個(gè)層級(jí)結(jié)構(gòu)的具體實(shí)現(xiàn)
在SpringBoot項(xiàng)目中,常常會(huì)把代碼文件放入不同的包中,本文主要介紹了SpringBoot中各個(gè)層級(jí)結(jié)構(gòu)的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05IDEA中springboot提示java:找不到符號(hào)符號(hào):變量log問題
這篇文章主要介紹了IDEA中springboot提示java:找不到符號(hào)符號(hào):變量log問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04