中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

阿壩州城鄉(xiāng)建設(shè)網(wǎng)站百度競(jìng)價(jià)廣告

阿壩州城鄉(xiāng)建設(shè)網(wǎng)站,百度競(jìng)價(jià)廣告,合肥網(wǎng)站開發(fā)需要,昆山做網(wǎng)站怎么做思維導(dǎo)圖 常見知識(shí)點(diǎn) 一、SpringBoot 1.簡(jiǎn)單介紹一下Spring及其優(yōu)缺點(diǎn) 1.1 概念 重量級(jí)企業(yè)開發(fā)框架EJB的替代品,通過依賴注入、面向切面編程,使用簡(jiǎn)單Java對(duì)象POJO為企業(yè)Java開發(fā)提供了相對(duì)簡(jiǎn)單的方法。 1.2 優(yōu)缺點(diǎn) 1.2.1 優(yōu)點(diǎn) 組件代碼輕量級(jí) …

思維導(dǎo)圖

常見知識(shí)點(diǎn)

一、SpringBoot

1.簡(jiǎn)單介紹一下Spring及其優(yōu)缺點(diǎn)

1.1 概念

重量級(jí)企業(yè)開發(fā)框架EJB的替代品,通過依賴注入、面向切面編程,使用簡(jiǎn)單Java對(duì)象POJO為企業(yè)Java開發(fā)提供了相對(duì)簡(jiǎn)單的方法。

1.2 優(yōu)缺點(diǎn)

1.2.1 優(yōu)點(diǎn)

組件代碼輕量級(jí)

1.2.1 缺點(diǎn)
  • 配置重量級(jí)
    基于注解的組件掃描、基于Java配置雖然減少甚至消除了大量XML配置,還是需要不少配置。
    ??如下,需要XML或Java顯式配置:
    開啟Spring特性 ---- 事務(wù)管理、SpringMVC;
    啟用第三方庫(kù) ---- 如基于Thymeleaf的Web視圖;
    配置Servlet和過濾器;

  • 相關(guān)庫(kù)依賴,不同庫(kù)之間版本沖突

2.為什要SpringBoot?

Spring旨在簡(jiǎn)化J2EE企業(yè)應(yīng)用程序開發(fā),SpringBoot旨在簡(jiǎn)化Spring開發(fā),減少配置文件,開箱即用。


![在這里插入圖片描述](https://img-blog.csdnimg.cn/4233724a8b0c4007b3cf223761006c72.png)

3.使用SpringBoot的主要優(yōu)點(diǎn)?

  1. 開發(fā)基于Spring應(yīng)用程序很容易。
  2. SpringBoot項(xiàng)目所需要的開發(fā)或工程時(shí)間明顯減少。
  3. SpringBoot不需要編寫大量樣板代碼、XML配置和注釋。
  4. SpringBoot引導(dǎo)應(yīng)用程序可以很容易與Spring生態(tài)系統(tǒng)集成
    如:Spring JDBC、Spring ORM、Spring Data、Spring Security等。
  5. SpringBoot遵循“固執(zhí)己見的默認(rèn)配置”,減少開發(fā)工作(默認(rèn)配置可以修改)。
  6. SpringBoot應(yīng)用程序提供嵌入式HTTP服務(wù)器。
    如:Tomcat和Jetty,可以輕松的開發(fā)和測(cè)試Web應(yīng)用程序 ---- 普通運(yùn)行Java程序的方式就能運(yùn)行基于SpringBoot Web項(xiàng)目
  7. SpringBoot提供命令行接口(CLI)工具,用于開發(fā)和測(cè)試SpringBoot應(yīng)用程序。
    如:Java和Groovy。
  8. SpringBoot提供了很多插件。
    如:可以使用內(nèi)置工具(Maven和Gradle)開發(fā)和測(cè)試SpringBoot應(yīng)用程序。

4.什么是SpringBoot Starers?

是一系列依賴關(guān)系的集合,簡(jiǎn)化了項(xiàng)目的依賴關(guān)系,大大方便了我們開發(fā)導(dǎo)入依賴。

如: 沒有他之前,我們開發(fā)REST服務(wù)或Web應(yīng)用程序時(shí),需要手動(dòng)一個(gè)一個(gè)添加SpringMVC、Tomcat、Jackso等庫(kù),
有了他之后只要添加spring-boot-starter-web一個(gè)依賴就行了。

5.SpringBoot支持哪些內(nèi)嵌的Servlet容器?

NameServlet Version
Tomcat9.0
Jetty9.4
Undertow2.0

你還可以將Spring引導(dǎo)應(yīng)用程序部署到任何Servlet3.1+兼容的Web容器中。

6.@SpringBootApplication注解?

6.1 組成

  • @SpringBootConfiguration
    允許上下文中注冊(cè)額外的bean或?qū)肫渌渲妙?/p>

  • @ComponentScan
    掃描被@Component(@Service、@Controller)注解的bean,注解默認(rèn)會(huì)掃描改類所在包下的所有類

  • @EnableAutoConfiguration

  • 啟用SpringBoot的自動(dòng)配置機(jī)制

原理是根據(jù)@import,將符合配置條件的bean加載到Ioc容器中。

7.RESTful Web服務(wù)常用注解?

7.1 Spring Bean相關(guān)

  • @Autowired
    自動(dòng)導(dǎo)入對(duì)象到類中,被注入進(jìn)的類同樣要被 Spring 容器管理。

  • @RestController
    @RestController 注解是 @Controller和 @ ResponseBody 的合集,
    表示這是個(gè)控制器 bean,并且是將函數(shù)的返回值直接填入 HTTP 響應(yīng)體中,是 REST風(fēng)格的控制器。

  • @Component
    通用的注解,可標(biāo)注任意類為 Spring 組件。
    如果一個(gè) Bean 不知道屬于哪個(gè)層,可以使用 @Component 注解標(biāo)注。

  • @Repository :
    對(duì)應(yīng)持久層即 Dao 層,主要用于數(shù)據(jù)庫(kù)相關(guān)操作。

  • @Service
    對(duì)應(yīng)服務(wù)層,主要涉及一些復(fù)雜的邏輯,需要用到 Dao 層。

  • @Controller
    對(duì)應(yīng) Spring MVC 控制層,主要用于接受用戶請(qǐng)求并調(diào)用 Service 層返回?cái)?shù)據(jù)給前端頁(yè)面。

7.2 HTTP常見請(qǐng)求類型

  • @GetMapping : GET 請(qǐng)求、
  • @PostMapping : POST 請(qǐng)求。
  • @PutMapping : PUT 請(qǐng)求。
  • @DeleteMapping : DELETE 請(qǐng)求。

7.3 前后端傳值

  • @RequestParam 以及 @Pathvairable
    @PathVariable用于獲取路徑參數(shù),
    @RequestParam用于獲取查詢參數(shù)。

  • @RequestBody
    用于讀取 Request 請(qǐng)求(可能是 POST,PUT,DELETE,GET 請(qǐng)求)的body 部分,并且 Content-Type 為 application/json 格式的數(shù)據(jù),接收到數(shù)據(jù)之后會(huì)自動(dòng)將數(shù)據(jù)綁定到 Java 對(duì)象上去。
    系統(tǒng)會(huì)使用 HttpMessageConverter 或者自定義的 HttpMessageConverter 將請(qǐng)求的 body 中的 json 字符串轉(zhuǎn)換為 java 對(duì)象。

8.Spring Boot 常用的讀取配置文件的方法?

8.1 通過 @value 讀取比較簡(jiǎn)單的配置信息(不被推薦)

@Value("${wuhan2020}")
String wuhan2020;

8.2 通過 @ConfigurationProperties 讀取并與Bean綁定

8.3 通過 @ConfigurationProperties 讀取配置文件并校驗(yàn)

8.4 @PropertySource 讀取指定的 properties 文件

import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@PropertySource("classpath:website.properties")
@Getter
@Setter
class WebSite {@Value("${url}")private String url;
}

使用:

@Autowired
private WebSite webSite;
System.out.println(webSite.getUrl());//https://javaguide.cn/

9. Spring Boot 加載配置文件的優(yōu)先級(jí)?


![在這里插入圖片描述](https://img-blog.csdnimg.cn/bdd6fab793ff45a7805c9e8e6014943c.png)

10. 常用的 Bean 映射工具有哪些?

  • Bean 映射工具有屬性拷貝類功能,可以幫助我們節(jié)省大量的 set 和 get 操作。

  • 常用如下:
    Spring BeanUtils、MapStruct、Apache BeanUtils、ModelMapper、Dozer、Orika、JMapper 。

推薦用MapStruct、Spring BeanUtils

11.Spring Boot 如何做請(qǐng)求參數(shù)校驗(yàn)?

只需要引入要 spring-boot-starter-web 依賴就夠了,它的子依賴包含了我們所需要的東西。

11.1 校驗(yàn)注解

(1)JSR 提供的校驗(yàn)注解
  • @Null 被注釋的元素必須為 null
  • @NotNull 被注釋的元素必須不為 null
  • @AssertTrue 被注釋的元素必須為 true
  • @AssertFalse 被注釋的元素必須為 false
  • @Min(value) 被注釋的元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小值
  • @Max(value) 被注釋的元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大值
  • @DecimalMin(value) 被注釋的元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小
  • @DecimalMax(value) 被注釋的元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大
  • @Size(max=, min=) 被注釋的元素的大小必須在指定的范圍內(nèi)
  • @Digits (integer, fraction) 被注釋的元素必須是一個(gè)數(shù)字,其值必須在可接受的
    范圍內(nèi)
  • @Past 被注釋的元素必須是一個(gè)過去的日期
  • @Future 被注釋的元素必須是一個(gè)將來的日期
  • @Pattern(regex=,flag=) 被注釋的元素必須符合指定的正則表達(dá)式
(2)Hibernate Validator 提供的校驗(yàn)注解
  • @NotBlank(message =) 驗(yàn)證字符串非 null,且長(zhǎng)度必須大于 0
  • @Email 被注釋的元素必須是電子郵箱地址
  • @Length(min=,max=) 被注釋的字符串的大小必須在指定的范圍內(nèi)
  • @NotEmpty 被注釋的字符串的必須非空
  • @Range(min=,max=,message=) 被注釋的元素必須在合適的范圍內(nèi)

使用示例:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {@NotNull(message = "classId 不能為空")private String classId;@Size(max = 33)@NotNull(message = "name 不能為空")private String name;@Pattern(regexp = "((^Man$|^Woman$|^UGM$))", message = "sex 值不在可選范圍"@NotNull(message = "sex 不能為空")private String sex;@Email(message = "email 格式不正確")@NotNull(message = "email 不能為空")private String email;
}

11.2 驗(yàn)證請(qǐng)求體(RequestBody)

我們?cè)谛枰?yàn)證的參數(shù)上加上了 @Valid 注解,如果驗(yàn)證失敗,它將拋出 MethodArgumentNotValidException 。

默認(rèn)情況下,Spring 會(huì)將此異常轉(zhuǎn)換為 HTTP Status 400(錯(cuò)誤請(qǐng)求)。

@RestController
@RequestMapping("/api")
public class PersonController {@PostMapping("/person")public ResponseEntity<Person> getPerson(@RequestBody @Valid Person person)return ResponseEntity.ok().body(person);}
}

11.3 驗(yàn)證請(qǐng)求參數(shù)(Path Variables 和 Request Parameters)

一定一定不要忘記在類上加上 Validated 注解了,這個(gè)參數(shù)可以告訴 Spring 去校驗(yàn)方法參數(shù)。

@RestController
@RequestMapping("/api")
@Validated
public class PersonController {@GetMapping("/person/{id}")public ResponseEntity<Integer> getPersonByID(@Valid @PathVariable("id") @Mreturn ResponseEntity.ok().body(id);}@PutMapping("/person")public ResponseEntity<String> getPersonByName(@Valid @RequestParam("name")return ResponseEntity.ok().body(name);}
}

12.Spring Boot 中如何實(shí)現(xiàn)定時(shí)任務(wù) ?

12.1 @Scheduled 注解

創(chuàng)建一個(gè)定時(shí)任務(wù)

@Component
public class ScheduledTasks {private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.cprivate static final SimpleDateFormat dateFormat = new SimpleDateFormat("H/*** fixedRate:固定速率執(zhí)行。每5秒執(zhí)行一次。*/@Scheduled(fixedRate = 5000)public void reportCurrentTimeWithFixedRate() {log.info("Current Thread : {}", Thread.currentThread().getName());log.info("Fixed Rate Task : The time is now {}", dateFormat.format(new}
}
1

12.2 @EnableScheduling 注解

  • 需要在啟動(dòng)類上加上 @EnableScheduling 注解,這樣才可以啟動(dòng)定時(shí)任務(wù)。
  • @EnableScheduling 注解的作用是發(fā)現(xiàn)注解 @Scheduled 的任務(wù)并在后臺(tái)執(zhí)行該任務(wù)。

二、Netty

1.概述

1.1 為什么要選Netty?

  • 使用Netty不必編寫復(fù)雜的邏輯代碼去實(shí)現(xiàn)通信,再也不需要去考慮性能問題,不需要考慮編碼問題,半包讀寫等問題。
  • Netty是最流行的NIO框架,它的健壯性、功能、性能、可定制性和可擴(kuò)展性在同類框架都是首屈一指的.
  • 已經(jīng)得到成百上千的商業(yè)/商用項(xiàng)目驗(yàn)證,如Hadoop的RPC框架Avro、RocketMQ以及主流的分布式通信框架Dubbox

1.2 BIO、NIO、AIO

在這里插入圖片描述

1.3 Netty簡(jiǎn)介

  • Netty 是由 JBOSS 提供的一個(gè) Java 開源框架, 現(xiàn)為 Github 上的獨(dú)立項(xiàng)目。
  • Netty 是一個(gè)異步的、 基于事件驅(qū)動(dòng)的網(wǎng)絡(luò)應(yīng)用框架, 用以快速開發(fā)高性能、 高可靠性的網(wǎng)絡(luò) IO 程序。
  • Netty 主要針對(duì)在 TCP 協(xié)議下, 面向 Clients 端的高并發(fā)應(yīng)用, 或者 Peer-to-Peer 場(chǎng)景下的大量數(shù)據(jù)持續(xù)傳輸?shù)膽?yīng)用。
  • Netty 本質(zhì)是一個(gè) NIO 框架, 適用于服務(wù)器通訊相關(guān)的多種應(yīng)用場(chǎng)景。

在這里插入圖片描述


1.4 Netty應(yīng)用場(chǎng)景

1.4.1 互聯(lián)網(wǎng)行業(yè)
  • 分布式系統(tǒng)中,各個(gè)節(jié)點(diǎn)之間需要遠(yuǎn)程服務(wù)調(diào)用, 高性能的 RPC 框架必不可少, Netty 作為異步高性能的通信框架, 往往作為基礎(chǔ)通信組件被這些 RPC 框架使用。
  • 典型的應(yīng)用
    阿里分布式服務(wù)框架 Dubbo 的 RPC 框架使用 Dubbo 協(xié)議進(jìn)行節(jié)點(diǎn)間通信, Dubbo 協(xié)議默認(rèn)使用 Netty 作為基礎(chǔ)通信組件, 用于實(shí)現(xiàn)各進(jìn)程節(jié)點(diǎn)之間的內(nèi)部通信
1.4.2 游戲行業(yè)
  • 無論是手游服務(wù)端還是大型的網(wǎng)絡(luò)游戲,Java 語(yǔ)言得到了越來越廣泛的應(yīng)用。
  • Netty 作為高性能的基礎(chǔ)通信組件, 提供了 TCP/UDP 和 HTTP 協(xié)議棧, 方便定制和開發(fā)私有協(xié)議棧, 賬號(hào)登錄服務(wù)器。
  • 地圖服務(wù)器之間可以方便的通過 Netty 進(jìn)行高性能的通信。
1.4.3 大數(shù)據(jù)領(lǐng)域
  • 經(jīng)典的 Hadoop 的高性能通信和序列化組件 Avro 的 RPC 框架, 默認(rèn)采用 Netty 進(jìn)行跨界點(diǎn)通信。
  • 它的 Netty Service 基于 Netty 框架二次封裝實(shí)現(xiàn)。
  • 地圖服務(wù)器之間可以方便的通過 Netty 進(jìn)行高性能的通信。

在這里插入圖片描述

1.5 其他開源項(xiàng)目用到Netty

Netty官網(wǎng)

本篇主要參考鏈接如下:
Netty 介紹和應(yīng)用場(chǎng)景(一)


本篇文章主要參考鏈接如下:

參考鏈接2-JavaGuide


持續(xù)更新中…

隨心所往,看見未來。Follow your heart,see light!

歡迎點(diǎn)贊、關(guān)注、留言,一起學(xué)習(xí)、交流!

http://www.risenshineclean.com/news/44021.html

相關(guān)文章:

  • 寧波網(wǎng)站推廣平臺(tái)推薦深圳排名seo公司
  • 免費(fèi)一級(jí)域名網(wǎng)站網(wǎng)站一般需要怎么推廣
  • 360的網(wǎng)站排名怎么做seo排名優(yōu)化app
  • 企業(yè)網(wǎng)站的主要功能愛站網(wǎng)ip反查域名
  • 做國(guó)外網(wǎng)站獨(dú)特密碼有什么平臺(tái)可以推廣信息
  • 徐州網(wǎng)站建設(shè)公司百度推廣開戶費(fèi)用標(biāo)準(zhǔn)
  • 大旺建設(shè)局網(wǎng)站自己做網(wǎng)站的流程
  • 滕州網(wǎng)站建設(shè)制作b2b商務(wù)平臺(tái)
  • 政府類門戶網(wǎng)站cms抖音推廣引流
  • 青島網(wǎng)站建設(shè)全包谷歌seo是做什么的
  • 網(wǎng)站怎么推廣網(wǎng)絡(luò)營(yíng)銷是以什么為基礎(chǔ)
  • 高創(chuàng)園網(wǎng)站建設(shè)方案怎樣制作網(wǎng)站
  • 宿遷裝飾網(wǎng)站建設(shè)公司排名seo是什么工作內(nèi)容
  • 網(wǎng)站建設(shè)服務(wù)費(fèi)屬于站長(zhǎng)工具是什么
  • 成都 企業(yè)網(wǎng)站建設(shè)公司價(jià)格百度站長(zhǎng)管理平臺(tái)
  • 臺(tái)州做網(wǎng)站的公司seo優(yōu)化實(shí)訓(xùn)總結(jié)
  • github做網(wǎng)站空間地推掃碼平臺(tái)
  • wordpress 焦點(diǎn)圖seo搜索引擎優(yōu)化課程
  • 優(yōu)秀網(wǎng)站設(shè)計(jì)書籍微信公眾號(hào)平臺(tái)官網(wǎng)
  • 返利網(wǎng)網(wǎng)站怎么做北京seo推廣服務(wù)
  • 深圳龍華大浪做網(wǎng)站公司知乎營(yíng)銷平臺(tái)
  • 做搜狗手機(jī)網(wǎng)站快速排十大中文網(wǎng)站排名
  • 做網(wǎng)站首頁(yè)需要什么資料推廣app用什么平臺(tái)比較好
  • 太原自助建站軟件快速排名教程
  • 石家莊做網(wǎng)站的公司有哪些足球世界排名一覽表
  • 網(wǎng)站開發(fā)3687474企鵝網(wǎng)絡(luò)營(yíng)銷的種類
  • 做網(wǎng)站哪個(gè)公司可以做seo收錄排名
  • 網(wǎng)站做裂變引流周口網(wǎng)絡(luò)推廣公司
  • 制作公司網(wǎng)站在公賬匯款時(shí)用途備注什么北京seo工程師
  • 網(wǎng)站建設(shè)基本內(nèi)容百度一下你就知道了