亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot熱部署的兩種方式是什么

發布時間:2022-04-07 13:52:15 來源:億速云 閱讀:198 作者:iii 欄目:編程語言

本篇內容主要講解“springboot熱部署的兩種方式是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“springboot熱部署的兩種方式是什么”吧!

springboot和springmvc的區別

spring boot 內嵌tomcat,Jetty和Undertow容器,可以直接運行起來,不在再做部署;

spring boot 自動配置,減少了xml文件的大量配置;降低了項目搭建的復雜度

Spring MVC是基于 Servlet 的一個 MVC 框架 主要解決 WEB 開發的問題,因為 Spring 的配置非常復雜,各種XML、 JavaConfig、hin處理起來比較繁瑣。于是為了簡化開發者的使用,從而創造性地推出了Spring boot,約定優于配置,簡化了spring的配置流程。

Spring 是一個“引擎”;

Spring MVC 是基于Spring的一個 MVC 框架 ;

Spring Boot 是基于Spring4的條件注冊的一套快速開發整合包。

springboot熱部署的兩種方式

SpringBoot 1.3后才擁有SpringBoot devtools熱部署

①:spring-boot-devtools ②:Spring Loaded

方式一:

在項目的pom文件中添加依賴:

 <!--熱部署jar-->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-devtools</artifactId>
 </dependency>

然后:使用 shift+ctrl+alt+"/" (IDEA中的快捷鍵) 選擇"Registry" 然后勾選 compiler.automake.allow.when.app.running

方式二:

在項目中添加如下代碼

 <build>
 <plugins>
  <plugin>
  <!-- springBoot編譯插件-->
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <dependencies>
   <!-- spring熱部署 -->
   <!-- 該依賴在此處下載不下來,可以放置在build標簽外部下載完成后再粘貼進plugin中 -->
   <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>springloaded</artifactId>
   <version>1.2.6.RELEASE</version>
   </dependency>
  </dependencies>
  </plugin>
 </plugins>
 </build>

添加完畢后需要使用mvn指令運行:

首先找到IDEA中的Edit configurations ,然后進行如下操作:(點擊左上角的"+",然后選擇maven將出現右側面板,在紅色劃線部位輸入如圖所示指令,你可以為該指令命名(此處命名為MvnSpringBootRun))

點擊保存將會在IDEA項目運行部位出現,點擊綠色箭頭運行即可

springboot配置文件

spring boot使用一個全局配置文件:主要是以下兩種類型

application.properties :例:server.port=9998

application.yml(YAML) :例:server:

               port:8080

配置文件的作用主要是修改spring boot在底層的默認配置

Spring Boot 的核心注解

啟動類上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要組合包含了以下 3 個注解:

@SpringBootConfiguration:組合了 @Configuration 注解,實現配置文件的功能。

@EnableAutoConfiguration:打開自動配置的功能,也可以關閉某個自動配置的選項,如關閉數據源自動配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

@ComponentScan:Spring組件掃描。

spring boot的starter的執行原理

利用starter實現自動化配置只需要兩個條件——maven依賴、配置文件,這里簡單介紹下starter實現自動化配置的流程。
引入maven實質上就是導入jar包,spring-boot啟動的時候會找到starter jar包中的resources/META-INF/spring.factories文件,根據spring.factories文件中的配置,找到需要自動配置的類

Spring Boot與Spring MVC的區別

  1. Spring Boot是Spring和Spring MVC的整合,而Spring MVC只是Spring的一個模塊,一個輕量級的Web層框架

  2. Spring Boot幾乎可以實現零配置,所有功能使用注解進行開發,運用了'約定大于配置'的思想,簡化了項目開發

  3. 難度,而Spring MVC需要依賴于xml配置進行開發

  4. Spring Boot提供了內置的tomcat,可以打成jar包直接運行,也可以使用外置tomcat

  5. Spring Boot還繼承了許多第三方庫配置,例如,JDBC, Mongo, Redis等,應用這些第三方庫,幾乎可以零配置

springcloud的服務注冊和發現是怎樣的原理

Eureka包含兩個組件:Eureka Server和Eureka Client

Eureka Server提供服務注冊服務

各個節點啟動后,會在EurekaServer中進行注冊,這樣EurekaServer中的服務注冊表中將會存儲所有可用服務節點的信息,服務節點的信息可以在界面中直觀的看到

EurekaClient是一個Java客戶端,用于簡化Eureka Server的交互,客戶端同時也具備一個內置的、使用輪詢(round-robin)負載算法的負載均衡器。在應用啟動后,將會向Eureka Server發送心跳(默認周期為30秒)。如果Eureka Server在多個心跳周期內沒有接收到某個節點的心跳,EurekaServer將會從服務注冊表中把這個服務節點移除(默認90秒)

Eureka三大角色:

  • Eureka Server 提供服務注冊和發現

  • Service Provider服務提供方將自身服務注冊到Eureka,從而使服務消費方能夠找到

  • Service Consumer服務消費方從Eureka獲取注冊服務列表,從而能夠消費服務

作為服務注冊中心,Eureka 和 Zookeeper對比的優勢:

著名的CAP理論指出,一個分布式系統不可能同時滿足C(一致性)、A(可用性)和P(分區容錯性)。由于分區容錯性P在是分布式系統中必須要保證的,因此我們只能在A和C之間進行權衡。

因此

  • Zookeeper保證的是CP,

  • Eureka則是AP

mybatis中的#和$的區別

#相當于對數據 加上 雙引號,$相當于直接顯示數據

  • #將傳入的數據都當成一個字符串,會對自動傳入的數據加一個雙引號。如:order by #user_id#,如果傳入的值是111,那么解析成sql時的值為order by "111", 如果傳入的值是id,則解析成的sql為order by "id".  

  • $將傳入的數據直接顯示生成在sql中。如:order by $user_id$,如果傳入的值是111,那么解析成sql時的值為order by user_id, 如果傳入的值是id,則解析成的sql為order by id. 

  • 3#方式能夠很大程度防止sql注入。  

  • $方式無法防止Sql注入。

  • $方式一般用于傳入數據庫對象,例如傳入表名.  

  • 一般能用#的就別用$.

MyBatis排序時使用order by 動態參數時需要注意,用$而不是#

字符串替換

默認情況下,使用#{}格式的語法會導致MyBatis創建預處理語句屬性并以它為背景設置安全的值(比如?)。這樣做很安全,很迅速也是首選做法,有時你只是想直接在SQL語句中插入一個不改變的字符串。比如,像ORDER BY,你可以這樣來使用:
ORDER BY ${columnName}

這里MyBatis不會修改或轉義字符串。

Redis怎樣淘汰數據

  1. volatile-lru :從已設置過期時間的數據集(server.db[i].expires)中挑選最近最少使用的數據淘汰

  2. volatile-ttl:從已設置過期時間的數據集(server.db[i].expires)中挑選將要過期的數據淘汰

  3. volatile-random:從已設置過期時間的數據集(server.db[i].expires)中隨機挑選數據淘汰

  4. allkeys-lru:從數據集(server.db[i].dict)中挑選最近最少使用的數據淘汰

  5. allkeys-random:從數據集(server.db[i].dict)中隨機挑選數據淘汰

  6. no-envivtion(驅逐):禁止驅逐數據

LRU機制:

redis保存了lru計數器server.lrulock,會定時的去更新(redis定時程序severCorn()),每個redis對象都會設置相應的lru值,每次訪問對象的時候,redis都會更新redisObject.lru。

LRU淘汰機制:在數據集中隨機挑選幾個鍵值對,取出其中lru最大的鍵值對淘汰。所以,redis并不能保證淘汰的數據都是最近最少使用的,而是隨機挑選的鍵值對中的。

TTL機制:

redis數據集結構中保存了鍵值對過期時間表,即 redisDb.expires。

TTL淘汰機制:在數據集中隨機挑選幾個鍵值對,取出其中最接近過期時間的鍵值對淘汰。所以,redis并不能保證淘汰的數據都是最接近過期時間的,而是隨機挑選的鍵值對中的。

redis在每服務客戶端執行一個命令的時候,會檢測使用的內存是否超額

到此,相信大家對“springboot熱部署的兩種方式是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

雷波县| 宜州市| 东平县| 永吉县| 堆龙德庆县| 区。| 仲巴县| 西青区| 东光县| 静宁县| 盐亭县| 徐水县| 兴业县| 托克逊县| 高密市| 扎兰屯市| 湘潭市| 聂荣县| 寿阳县| 大洼县| 沁阳市| 禄丰县| 文山县| 吴旗县| 武功县| 南木林县| 达孜县| 雅安市| 琼海市| 铜川市| 新津县| 乐山市| 如东县| 南皮县| 吉首市| 南岸区| 巴马| 红安县| 绥滨县| 鲁甸县| 孟州市|