SpringBoot環(huán)境配置知識(shí)總結(jié)
一、pom文件配置
<!-- SpringBoot的父級(jí)依賴。只有設(shè)置了parent標(biāo)簽,項(xiàng)目才是SpringBoot項(xiàng)目 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
</parent>
<dependencies>
<!-- web啟動(dòng)器,加載web環(huán)境所需要的依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatis 集成 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!-- springboot 分頁(yè)插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
<!-- mysql 驅(qū)動(dòng) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- c3p0 數(shù)據(jù)源 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
<!-- Freemarker Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- Thymeleaf Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- JavaMail -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- AOP -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- Log -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<!-- tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- 為使用StringUtils工具類 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- API文檔 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- DevTools 的坐標(biāo) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!--當(dāng)前這個(gè)項(xiàng)目被繼承之后,這個(gè)不向下傳遞-->
<optional>true</optional>
</dependency>
<!-- SpringBoot單元測(cè)試 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- Ehcache -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
</dependencies>
<!-- SpringBoot項(xiàng)目的打包插件 -->
<build>
<finalName>springboot</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork><!-- 如果沒(méi)有該配置,熱部署的devtools不生效 -->
</configuration>
</plugin>
</plugins>
</build>
相關(guān)starter系列坐標(biāo)參考:
| 名稱 | 描述 |
|---|---|
| spring-boot-starter | 核心Spring Boot starter,包括自動(dòng)配置支持,日志和YAML |
| spring-boot-starter-actuator | 生產(chǎn)準(zhǔn)備的特性,用于幫我們監(jiān)控和管理應(yīng)用 |
| spring-boot-starter-amqp | 對(duì)”高級(jí)消息隊(duì)列協(xié)議”的支持,通過(guò)spring-rabbit實(shí)現(xiàn) |
| spring-boot-starter-aop | 對(duì)面向切面編程的支持,包括spring-aop和AspectJ |
| spring-boot-starter-batch | 對(duì)Spring Batch的支持,包括HSQLDB數(shù)據(jù)庫(kù) |
| spring-boot-starter-cloud-connectors | 對(duì)Spring Cloud Connectors的支持,簡(jiǎn)化在云平臺(tái)下(例如,Cloud Foundry 和Heroku)服務(wù)的連接 |
| spring-boot-starter-data-elasticsearch | 對(duì)Elasticsearch搜索和分析引擎的支持,包括spring-data-elasticsearch |
| spring-boot-starter-data-gemfire | 對(duì)GemFire分布式數(shù)據(jù)存儲(chǔ)的支持,包括spring-data-gemfire |
| spring-boot-starter-data-jpa | 對(duì)”Java持久化API”的支持,包括spring-data-jpa,spring-orm和Hibernate |
| spring-boot-starter-data-mongodb | 對(duì)MongoDB NOSQL數(shù)據(jù)庫(kù)的支持,包括spring-data-mongodb |
| spring-boot-starter-data-rest | 對(duì)通過(guò)REST暴露Spring Data倉(cāng)庫(kù)的支持,通過(guò)spring-data-rest-webmvc實(shí)現(xiàn) |
| spring-boot-starter-data-solr | 對(duì)Apache Solr搜索平臺(tái)的支持,包括spring-data-solr |
| spring-boot-starter-freemarker | 對(duì)FreeMarker模板引擎的支持 |
| spring-boot-starter-groovy-templates | 對(duì)Groovy模板引擎的支持 |
| spring-boot-starter-hateoas | 對(duì)基于HATEOAS的RESTful服務(wù)的支持,通過(guò)spring-hateoas實(shí)現(xiàn) |
| spring-boot-starter-hornetq | 對(duì)”Java消息服務(wù)API”的支持,通過(guò)HornetQ實(shí)現(xiàn) |
| spring-boot-starter-integration | 對(duì)普通spring-integration模塊的支持 |
| spring-boot-starter-jdbc | 對(duì)JDBC數(shù)據(jù)庫(kù)的支持 |
| spring-boot-starter-jersey | 對(duì)Jersey RESTful Web服務(wù)框架的支持 |
| spring-boot-starter-jta-atomikos | 對(duì)JTA分布式事務(wù)的支持,通過(guò)Atomikos實(shí)現(xiàn) |
| spring-boot-starter-jta-bitronix | 對(duì)JTA分布式事務(wù)的支持,通過(guò)Bitronix實(shí)現(xiàn) |
| spring-boot-starter-mail | 對(duì)javax.mail的支持 |
| spring-boot-starter-mobile | 對(duì)spring-mobile的支持 |
| spring-boot-starter-mustache | 對(duì)Mustache模板引擎的支持 |
| spring-boot-starter-redis | 對(duì)REDIS鍵值數(shù)據(jù)存儲(chǔ)的支持,包括spring-redis |
| spring-boot-starter-security | 對(duì)spring-security的支持 |
| spring-boot-starter-social-facebook | 對(duì)spring-social-facebook的支持 |
| spring-boot-starter-social-linkedin | 對(duì)spring-social-linkedin的支持 |
| spring-boot-starter-social-twitter | 對(duì)spring-social-twitter的支持 |
| spring-boot-starter-test | 對(duì)常用測(cè)試依賴的支持,包括JUnit, Hamcrest和Mockito,還有spring-test模塊 |
| spring-boot-starter-thymeleaf | 對(duì)Thymeleaf模板引擎的支持,包括和Spring的集成 |
| spring-boot-starter-velocity | 對(duì)Velocity模板引擎的支持 |
| spring-boot-starter-web | 對(duì)全棧web開(kāi)發(fā)的支持, 包括Tomcat和spring-webmvc |
| spring-boot-starter-websocket | 對(duì)WebSocket開(kāi)發(fā)的支持 |
| spring-boot-starter-ws | 對(duì)Spring Web服務(wù)的支持 |
二、yml文件配置
yml文件放在resources目錄下
## 端口號(hào) 上下文路徑
server:
port: 8989
servlet:
context-path: /mvc
## 數(shù)據(jù)源配置
spring:
datasource:
type: com.mchange.v2.c3p0.ComboPooledDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/hr
username: root
password: root
freemarker:
suffix: .ftl
content-type: text/html #響應(yīng)格式
charset: UTF-8
template-loader-path: classpath:/views/
## 熱部署配置
devtools:
restart:
enabled: true
# 設(shè)置重啟的目錄,添加目錄的文件需要restart
additional-paths: src/main/java
# 解決項(xiàng)目自動(dòng)重新編譯后接口報(bào)404的問(wèn)題
poll-interval: 3000
quiet-period: 1000
## Ehcache緩存配置
cache:
ehcache:
config: classpath:ehcache.xml
## mybatis 配置
mybatis:
#映射文件的存放路徑
mapper-locations: classpath:/mappers/*.xml
type-aliases-package: com.xxxx.springboot.po
configuration:
## 下劃線轉(zhuǎn)駝峰配置
map-underscore-to-camel-case: true
## pageHelper
pagehelper:
helper-dialect: mysql
## 顯示dao 執(zhí)行sql語(yǔ)句
logging:
level:
com:
xxxx:
dao: debug
三、SQL映射文件配置
sql映射文件路徑在"resources/mappers/"下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxxx.dao.UserMapper">
</mapper>
四、ehcahe.xml 文件
配置在resources下
<ehcache name="mycache">
<!--
如果不使用磁盤(pán)存儲(chǔ),只需要將diskStore注釋掉即可;
如果使用,需要在ehcache.xml文件中的ehcahce元素下的定義一個(gè)diskStore元素并指定其path屬性。
-->
<diskStore path="C:\java\cache"/>
<!--
name:緩存名稱。
maxElementsInMemory:緩存最大數(shù)目
maxElementsOnDisk:硬盤(pán)最大緩存?zhèn)€數(shù)。
eternal:對(duì)象是否永久有效,一但設(shè)置了,timeout將不起作用。
overflowToDisk:是否保存到磁盤(pán),當(dāng)系統(tǒng)宕機(jī)時(shí)
timeToIdleSeconds:設(shè)置對(duì)象在失效前的允許閑置時(shí)間(單位:秒)。
僅當(dāng)eternal=false對(duì)象不是永久有效時(shí)使用,可選屬性,默認(rèn)值是0,表示可閑置時(shí)間無(wú)窮大。
timeToLiveSeconds:設(shè)置對(duì)象在失效前允許存活時(shí)間(單位:秒)。
最大時(shí)間介于創(chuàng)建時(shí)間和失效時(shí)間之間。
僅當(dāng)eternal=false對(duì)象不是永久有效時(shí)使用,默認(rèn)是0,也就是對(duì)象存活時(shí)間無(wú)窮大。
diskPersistent:是否緩存虛擬機(jī)重啟期數(shù)據(jù)
Whether the disk store persists between restarts of the Virtual Machine. The default value is false.
diskSpoolBufferSizeMB:這個(gè)參數(shù)設(shè)置DiskStore(磁盤(pán)緩存)的緩存區(qū)大小。
默認(rèn)是30MB。每個(gè)Cache都應(yīng)該有自己的一個(gè)緩沖區(qū)。
diskExpiryThreadIntervalSeconds:磁盤(pán)失效線程運(yùn)行時(shí)間間隔,默認(rèn)是120秒。
memoryStoreEvictionPolicy:當(dāng)達(dá)到maxElementsInMemory限制時(shí),會(huì)根據(jù)指定的策略去清理內(nèi)存
默認(rèn)策略是LRU(最近最少使用)。你可以設(shè)置為FIFO(先進(jìn)先出)或是LFU(較少使用)。
clearOnFlush:內(nèi)存數(shù)量最大時(shí)是否清除。
memoryStoreEvictionPolicy:
可選策略有:
LRU(最近最少使用,默認(rèn)策略)
Less Frequently Used,就是例子中使用的策略,就是一直以來(lái)最少被使用的。
FIFO(先進(jìn)先出)
first in first out,這個(gè)是大家最熟的,先進(jìn)先出。
LFU(最少訪問(wèn)次數(shù))
Least Recently Used,最近最少使用的。
緩存的元素有一個(gè)時(shí)間戳,當(dāng)緩存容量滿了,而又需要騰出地方來(lái)緩存新的元素的時(shí)候,
那么現(xiàn)有緩存元素中時(shí)間戳離當(dāng)前時(shí)間最遠(yuǎn)的元素將被清出緩存。
-->
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
maxElementsOnDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
</defaultCache>
<cache
name="users"
eternal="false"
maxElementsInMemory="100"
overflowToDisk="false"
diskPersistent="false"
timeToIdleSeconds="0"
timeToLiveSeconds="300"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>
到此這篇關(guān)于SpringBoot環(huán)境配置知識(shí)總結(jié)的文章就介紹到這了,更多相關(guān)SpringBoot環(huán)境配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- springboot多模塊多環(huán)境配置文件問(wèn)題(動(dòng)態(tài)配置生產(chǎn)和開(kāi)發(fā)環(huán)境)
- IntelliJ IDEA基于SpringBoot如何搭建SSM開(kāi)發(fā)環(huán)境的步驟詳解
- centos環(huán)境下使用tomcat 部署SpringBoot的war包
- springboot yml中profiles的巧妙用法(小白必看多環(huán)境配置)
- 使用docker在linux環(huán)境中部署springboot包的教程
- SpringBoot+docker環(huán)境變量配置詳解
- 搭建 springboot selenium 網(wǎng)頁(yè)文件轉(zhuǎn)圖片環(huán)境的詳細(xì)教程
- springboot 多環(huán)境切換的方法
- SpringBoot環(huán)境搭建及第一個(gè)程序運(yùn)行(小白教程)
- Matplotlib可視化之自定義顏色繪制精美統(tǒng)計(jì)圖
相關(guān)文章
Java異步線程中的CompletableFuture與@Async詳解
這篇文章主要介紹了Java異步線程中的CompletableFuture與@Async詳解,CompletableFuture是java中提供的一個(gè)異步執(zhí)行類,@Async是Spring提供的異步執(zhí)行方法,當(dāng)調(diào)用方法單獨(dú)開(kāi)啟一個(gè)線程進(jìn)行調(diào)用,需要的朋友可以參考下2024-01-01
springboot整合mybatis實(shí)現(xiàn)數(shù)據(jù)庫(kù)的更新批處理方式
這篇文章主要介紹了springboot整合mybatis實(shí)現(xiàn)數(shù)據(jù)庫(kù)的更新批處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Spring中FactoryBean的高級(jí)用法實(shí)戰(zhàn)教程
FactoryBean是Spring框架的高級(jí)特性,允許自定義對(duì)象的創(chuàng)建過(guò)程,適用于復(fù)雜初始化邏輯,本文給大家介紹Spring中FactoryBean的高級(jí)用法實(shí)戰(zhàn),感興趣的朋友跟隨小編一起看看吧2024-09-09
SpringBoot實(shí)現(xiàn)阿里云短信發(fā)送的示例代碼
這篇文章主要為大家介紹了如何利用SpringBoot實(shí)現(xiàn)阿里云短信發(fā)送,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2022-04-04
java使用wait和notify實(shí)現(xiàn)線程通信
這篇文章主要為大家詳細(xì)介紹了java如何使用wait和notify實(shí)現(xiàn)線程之間通信,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10

