Java知識分享網 - 輕松學習從此開始!????

Java知識分享網

Java1234官方群25:java1234官方群25
Java1234官方群25:838462530
     

GIT視頻教程(結合github,碼云)免費領取

SpringBoot打造全棧在線教育平臺實戰課程

SpringBoot打造企業級進銷存

Java1234 VIP課程

領取微信掃碼登錄Java實現視頻教程

Java1234至尊VIP(特價活動)

Spring面試題整理(附答案) PDF 下載


分享到:
時間:2020-08-08 10:23來源:http://www.248787.tw 作者:小鋒  侵權舉報
Spring面試題整理(附答案) PDF 下載
失效鏈接處理
Spring面試題整理(附答案)  PDF 下載


本站整理下載:
 
相關截圖:
 
主要內容:

Spring
一.Spring概述(10)
1.什么是spring?
Spring是一個輕量級Java開發框架,最早由Rod Johnson創建,目的是為了解決企業級應用開發的業務邏輯層和其他各層的耦合問題。它是一個分層的JavaSE/JavaEE full-stack(一站式)輕量級開源框架,為開發Java應用程序提供全面的基礎架構支持。Spring負責基礎架構,因此Java開發者可以專注于應用程序的開發。
Spring最根本的使命是解決企業級應用開發的復雜性,即簡化Java開發。
Spring可以做很多事情,它為企業級開發提供給了豐富的功能,但是這些功能的底層都依賴于它的兩個核心特性,也就是依賴注入(dependency injection,DI)和面向切面編程(aspect-oriented programming,AOP)。
為了降低Java開發的復雜性,Spring采取了以下4種關鍵策略
?基于POJO的輕量級和最小侵入性編程;
?通過依賴注入和面向接口實現松耦合;
?基于切面和慣例進行聲明式編程;
?通過切面和模板減少樣板式代碼。
2.Spring框架的設計目標,設計理念,和核心是什么
(1)Spring設計目標:Spring為開發者提供一個一站式輕量級應用開發平臺;
(2)Spring設計理念:在JavaEE開發中,支持POJO和JavaBean開發方式,使應用面向接口開發,充分支持OO(面向對象)設計方法;Spring通過IoC容器實現對象耦合關系的管理,并實現依賴反轉,將對象之間的依賴關系交給IoC容器,實現解耦;
(3)Spring框架的核心:IoC容器和AOP模塊。通過IoC容器管理POJO對象以及他們之間的耦合關系;通過AOP以動態非侵入的方式增強服務。IoC讓相互協作的組件保持松散的耦合,而AOP編程允許你把遍布于應用各層的功能分離出來形成可重用的功能組件。
3.Spring的優缺點是什么?
優點
?方便解耦,簡化開發。Spring就是一個大工廠,可以將所有對象的創建和依賴關系的維護,交給Spring管理。
?AOP編程的支持。Spring提供面向切面編程,可以方便的實現對程序進行權限攔截、運行監控等功能。
?聲明式事務的支持。只需要通過配置就可以完成對事務的管理,而無需手動編程。
?方便程序的測試。Spring對Junit4支持,可以通過注解方便的測試Spring程序。
?方便集成各種優秀框架。Spring不排斥各種優秀的開源框架,其內部提供了對各種優秀框架的直接支持(如:Struts、Hibernate、MyBatis等)。
?降低JavaEE API的使用難度。Spring對JavaEE開發中非常難用的一些API(JDBC、JavaMail、遠程調用等),都提供了封裝,使這些API應用難度大大降低。
缺點
?Spring明明一個很輕量級的框架,卻給人感覺大而全
?Spring依賴反射,反射影響性能
?使用門檻升高,入門Spring需要較長時間
4.Spring有哪些應用場景
應用場景:JavaEE企業應用開發,包括SSH、SSM等
Spring價值:
?Spring是非侵入式的框架,目標是使應用程序代碼對框架依賴最小化;
?Spring提供一個一致的編程模型,使應用直接使用POJO開發,與運行環境隔離開來;
?Spring推動應用設計風格向面向對象和面向接口開發轉變,提高了代碼的重用性和可測試性;
5.Spring由哪些模塊組成?
Spring 總共大約有 20 個模塊, 由 1300 多個不同的文件構成。 而這些組件被分別整合在核心容器(Core Container) 、 AOP(Aspect Oriented Programming)和設備支持(Instrmentation) 、數據訪問與集成(Data Access/Integeration) 、 Web、 消息(Messaging) 、 Test等 6 個模塊中。 以下是 Spring 5 的模塊結構圖:
 
 
 
?spring core:提供了框架的基本組成部分,包括控制反轉(Inversion of Control,IOC)和依賴注入(Dependency Injection,DI)功能。
?spring beans:提供了BeanFactory,是工廠模式的一個經典實現,Spring將管理對象稱為Bean。
?spring context:構建于 core 封裝包基礎上的 context 封裝包,提供了一種框架式的對象訪問方法。
?spring jdbc:提供了一個JDBC的抽象層,消除了煩瑣的JDBC編碼和數據庫廠商特有的錯誤代碼解析, 用于簡化JDBC。
?spring aop:提供了面向切面的編程實現,讓你可以自定義攔截器、切點等。
?spring Web:提供了針對 Web 開發的集成特性,例如文件上傳,利用 servlet listeners 進行 ioc 容器初始化和針對 Web 的 ApplicationContext。
?spring test:主要為測試提供支持的,支持使用JUnit或TestNG對Spring組件進行單元測試和集成測試。
6.Spring 框架中都用到了哪些設計模式? 
工廠模式:BeanFactory就是簡單工廠模式的體現,用來創建對象的實例;
單例模式:Bean默認為單例模式。
代理模式:Spring的AOP功能用到了JDK的動態代理和CGLIB字節碼生成技術;
模板方法:用來解決代碼重復的問題。比如. RestTemplate, JmsTemplate, JpaTemplate。
觀察者模式:定義對象鍵一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都會得到通知被制動更新,如Spring中listener的實現–ApplicationListener。
7.詳細講解一下核心容器(spring context應用上下文) 模塊
這是基本的Spring模塊,提供spring 框架的基礎功能,BeanFactory 是 任何以spring為基礎的應用的核心。Spring 框架建立在此模塊之上,它使Spring成為一個容器。
Bean 工廠是工廠模式的一個實現,提供了控制反轉功能,用來把應用的配置和依賴從真正的應用代碼中分離。最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory ,它根據XML文件中的定義加載beans。該容器從XML 文件讀取配置元數據并用它去創建一個完全配置的系統或應用。
8.Spring框架中有哪些不同類型的事件
Spring 提供了以下5種標準的事件:
?上下文更新事件(ContextRefreshedEvent):在調用ConfigurableApplicationContext 接口中的refresh()方法時被觸發。
?上下文開始事件(ContextStartedEvent):當容器調用ConfigurableApplicationContext的Start()方法開始/重新開始容器時觸發該事件。
?上下文停止事件(ContextStoppedEvent):當容器調用ConfigurableApplicationContext的Stop()方法停止容器時觸發該事件。
?上下文關閉事件(ContextClosedEvent):當ApplicationContext被關閉時觸發該事件。容器被關閉時,其管理的所有單例Bean都被銷毀。
?請求處理事件(RequestHandledEvent):在Web應用中,當一個http請求(request)結束觸發該事件。如果一個bean實現了ApplicationListener接口,當一個ApplicationEvent 被發布以后,bean會自動被通知。
9.Spring 應用程序有哪些不同組件?
Spring 應用一般有以下組件:
?接口 - 定義功能。
?Bean 類 - 它包含屬性,setter 和 getter 方法,函數等。
?Bean 配置文件 - 包含類的信息以及如何配置它們。
?Spring 面向切面編程(AOP) - 提供面向切面編程的功能。
?用戶程序 - 它使用接口。
10.使用 Spring 有哪些方式?
使用 Spring 有以下方式:
?作為一個成熟的 Spring Web 應用程序。
?作為第三方 Web 框架,使用 Spring Frameworks 中間層。
?作為企業級 Java Bean,它可以包裝現有的 POJO(Plain Old Java Objects)。
?用于遠程使用。
 
二.Spring控制反轉(IOC)(13)
1.什么是Spring IOC 容器? 
控制反轉即IoC (Inversion of Control),它把傳統上由程序代碼直接操控的對象的調用權交給容器,通過容器來實現對象組件的裝配和管理。所謂的“控制反轉”概念就是對組件對象控制權的轉移,從程序代碼本身轉移到了外部容器。
Spring IOC 負責創建對象,管理對象(通過依賴注入(DI),裝配對象,配置對象,并且管理這些對象的整個生命周期。

 

------分隔線----------------------------
鋒哥公眾號


鋒哥微信


關注公眾號
【Java資料站】
回復 666
獲取 
66套java
從菜雞到大神
項目實戰課程
体育彩票开奖时间