javascript
Spring精华问答 | Spring框架有哪些主要模块?
Spring框架是一個開源的Java平臺,它提供了非常容易,非常迅速地開發(fā)健壯的Java應用程序的全面的基礎(chǔ)設(shè)施支持。今天就讓我們一起來看看關(guān)于Spring的精華問答吧。
1
Q:什么是Spring框架?Spring框架有哪些主要模塊?
A:Spring框架是一個為Java應用程序的開發(fā)提供了綜合、廣泛的基礎(chǔ)性支持的Java平臺。Spring幫助開發(fā)者解決了開發(fā)中基礎(chǔ)性的問題,使得開發(fā)人員可以專注于應用程序的開發(fā)。Spring框架本身亦是按照設(shè)計模式精心打造,這使得我們可以在開發(fā)環(huán)境中安心的集成Spring框架,不必擔心Spring是如何在后臺進行工作的。
Spring框架至今已集成了20多個模塊。這些模塊主要被分如下圖所示的核心容器、數(shù)據(jù)訪問/集成,、Web、AOP(面向切面編程)、工具、消息和測試模塊。
Q:Spring框架中的IoC是什么?
A:Spring中的?org.springframework.beans?包和?org.springframework.context包構(gòu)成了Spring框架IoC容器的基礎(chǔ)。
BeanFactory 接口提供了一個先進的配置機制,使得任何類型的對象的配置成為可能。ApplicationContex接口對BeanFactory(是一個子接口)進行了擴展,在BeanFactory的基礎(chǔ)上添加了其他功能,比如與Spring的AOP更容易集成,也提供了處理message resource的機制(用于國際化)、事件傳播以及應用層的特別配置,比如針對Web應用的WebApplicationContext。
org.springframework.beans.factory.BeanFactory?是Spring IoC容器的具體實現(xiàn),用來包裝和管理前面提到的各種bean。BeanFactory接口是Spring IoC 容器的核心接口。
Q:Spring有幾種配置方式?
A:將Spring配置到應用開發(fā)中有以下三種方式:
基于XML的配置
基于注解的配置
基于Java的配置
Q:如何用基于XML配置的方式配置Spring?
A: ?在Spring框架中,依賴和服務需要在專門的配置文件來實現(xiàn),我常用的XML格式的配置文件。這些配置文件的格式通常用<beans>開頭,然后一系列的bean定義和專門的應用配置選項組成。
SpringXML配置的主要目的時候是使所有的Spring組件都可以用xml文件的形式來進行配置。這意味著不會出現(xiàn)其他的Spring配置類型(比如聲明的方式或基于Java Class的配置方式)
Spring的XML配置方式是使用被Spring命名空間的所支持的一系列的XML標簽來實現(xiàn)的。Spring有以下主要的命名空間:context、beans、jdbc、tx、aop、mvc和aso。
下面這個web.xml僅僅配置了DispatcherServlet,這件最簡單的配置便能滿足應用程序配置運行時組件的需求。
Q:怎樣用注解的方式配置Spring?
A:Spring在2.5版本以后開始支持用注解的方式來配置依賴注入。可以用注解的方式來替代XML方式的bean描述,可以將bean描述轉(zhuǎn)移到組件類的內(nèi)部,只需要在相關(guān)類上、方法上或者字段聲明上使用注解即可。注解注入將會被容器在XML注入之前被處理,所以后者會覆蓋掉前者對于同一個屬性的處理結(jié)果。
注解裝配在Spring中是默認關(guān)閉的。所以需要在Spring文件中配置一下才能使用基于注解的裝配模式。如果你想要在你的應用程序中使用關(guān)于注解的方法的話,請參考如下的配置。
在?<context:annotation-config/>標簽配置完成以后,就可以用注解的方式在Spring中向?qū)傩浴⒎椒ê蜆?gòu)造方法中自動裝配變量。
下面是幾種比較重要的注解類型:
@Required:該注解應用于設(shè)值方法。
@Autowired:該注解應用于有值設(shè)值方法、非設(shè)值方法、構(gòu)造方法和變量。
@Qualifier:該注解和@Autowired注解搭配使用,用于消除特定bean自動裝配的歧義。
JSR-250 Annotations:Spring支持基于JSR-250 注解的以下注解,@Resource、@PostConstruct 和 @PreDestroy。
小伙伴們沖鴨,后臺留言區(qū)等著你!
關(guān)于Spring,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區(qū)打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區(qū)里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
2、公眾號后臺回復:白皮書,獲取IDC最新數(shù)據(jù)白皮書整理資料!
推薦閱讀:
全面剖析企業(yè)私有云
30 秒?!Chrome 插件帶你速成編程學習 | 程序員硬核評測
為什么程序員下班后只關(guān)顯示器從不關(guān)電腦?
算法警告!該圖片涉嫌違規(guī)不予顯示
交易機器人春天已來?先看完這篇再說吧
2019年中國IT市場趨勢熱點
2019年最值得關(guān)注的五大微服務發(fā)展趨勢
總結(jié)
以上是生活随笔為你收集整理的Spring精华问答 | Spring框架有哪些主要模块?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是T+1交易 当日买进到下一个交易日
- 下一篇: 服务迁移之路 | Spring Clou