国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

阿壩州城鄉(xiāng)建設網站百度競價廣告

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

思維導圖

常見知識點

一、SpringBoot

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

1.1 概念

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

1.2 優(yōu)缺點

1.2.1 優(yōu)點

組件代碼輕量級

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

  • 相關庫依賴,不同庫之間版本沖突

2.為什要SpringBoot?

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


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

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

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

4.什么是SpringBoot Starers?

是一系列依賴關系的集合,簡化了項目的依賴關系,大大方便了我們開發(fā)導入依賴。

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

5.SpringBoot支持哪些內嵌的Servlet容器?

NameServlet Version
Tomcat9.0
Jetty9.4
Undertow2.0

你還可以將Spring引導應用程序部署到任何Servlet3.1+兼容的Web容器中。

6.@SpringBootApplication注解?

6.1 組成

  • @SpringBootConfiguration
    允許上下文中注冊額外的bean或導入其他配置類

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

  • @EnableAutoConfiguration

  • 啟用SpringBoot的自動配置機制

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

7.RESTful Web服務常用注解?

7.1 Spring Bean相關

  • @Autowired
    自動導入對象到類中,被注入進的類同樣要被 Spring 容器管理。

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

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

  • @Repository :
    對應持久層即 Dao 層,主要用于數(shù)據(jù)庫相關操作。

  • @Service
    對應服務層,主要涉及一些復雜的邏輯,需要用到 Dao 層。

  • @Controller
    對應 Spring MVC 控制層,主要用于接受用戶請求并調用 Service 層返回數(shù)據(jù)給前端頁面。

7.2 HTTP常見請求類型

  • @GetMapping : GET 請求、
  • @PostMapping : POST 請求。
  • @PutMapping : PUT 請求。
  • @DeleteMapping : DELETE 請求。

7.3 前后端傳值

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

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

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

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

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

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

8.3 通過 @ConfigurationProperties 讀取配置文件并校驗

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)先級?


![在這里插入圖片描述](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 如何做請求參數(shù)校驗?

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

11.1 校驗注解

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

使用示例:

@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 驗證請求體(RequestBody)

我們在需要驗證的參數(shù)上加上了 @Valid 注解,如果驗證失敗,它將拋出 MethodArgumentNotValidException 。

默認情況下,Spring 會將此異常轉換為 HTTP Status 400(錯誤請求)。

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

11.3 驗證請求參數(shù)(Path Variables 和 Request Parameters)

一定一定不要忘記在類上加上 Validated 注解了,這個參數(shù)可以告訴 Spring 去校驗方法參數(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 中如何實現(xiàn)定時任務 ?

12.1 @Scheduled 注解

創(chuàng)建一個定時任務

@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 注解

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

二、Netty

1.概述

1.1 為什么要選Netty?

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

1.2 BIO、NIO、AIO

在這里插入圖片描述

1.3 Netty簡介

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

在這里插入圖片描述


1.4 Netty應用場景

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

在這里插入圖片描述

1.5 其他開源項目用到Netty

Netty官網

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


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

參考鏈接2-JavaGuide


持續(xù)更新中…

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

歡迎點贊、關注、留言,一起學習、交流!

http://aloenet.com.cn/news/44021.html

相關文章:

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