国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring 核心 Ioc容器與Bean

qingshanli1988 / 2133人閱讀

摘要:多例類型,表示每次從容器中都會(huì)獲取到一個(gè)對(duì)應(yīng)定義全新的實(shí)例。僅適用于環(huán)境下的,表示每一個(gè)生命周期內(nèi)會(huì)有一個(gè)多帶帶的實(shí)例,即每一個(gè)請(qǐng)求都會(huì)擁有一個(gè)多帶帶的實(shí)例。將單個(gè)定義范圍限定為的生命周期。僅在的上下文中有效。

注意我的 Spring 版本是 5.1.2.RELEASE, 并且主要使用注解配置. 如果你需要使用 xml 配置, 我想這篇文章應(yīng)該不適合你.
IoC容器

IoC就是控制反轉(zhuǎn), 也叫依賴注入(DI).

比如, 我們現(xiàn)在有 A B 兩個(gè)類, A 類依賴 B 類在容器在創(chuàng)建 Bean(對(duì)象) 的時(shí)候, 會(huì)注入這些依賴也就是將 B 對(duì)象注入到 A 對(duì)象中.

依賴注入方式 構(gòu)造方法注入
private TestService testService;

@Autowired
public ScsController(TestService testService){
    this.testService = testService;
}
通過(guò)屬性注入
@Autowired
private TestService testService;

不管是根據(jù)構(gòu)造方法注入還是通過(guò)屬性注入 @Autowired 注解都是必不可少的. @Autowired 注解默認(rèn)是按照類型進(jìn)行注入的, 如果沒(méi)有出現(xiàn)指定類型 Bean 時(shí)(TestService Bean) 測(cè)可以設(shè)置 required=false 表示在用到的時(shí)候進(jìn)行注入.

有些情況下我們可能需要名稱進(jìn)行注入, 可以配合 @Qualifier 注解一起使用.

@Autowired
@Qualifier("testService")
private TestService testService;
Bean

在 Spring 中, bean 是一個(gè)由 Spring IoC 容器實(shí)例化, 組裝和管理的對(duì)象.

容器幫我們管理的 Bean 都表示一個(gè) BeanDefinition 對(duì)象, 這個(gè)對(duì)象的主要作用就是幫我們來(lái)描述 Bean 的 class 類型、構(gòu)造函數(shù)參數(shù)列表、scope、屬性、依賴項(xiàng)等等. 當(dāng)容器注冊(cè) Bean 的時(shí)候就會(huì)使用 BeanDefinitionRegistry 來(lái)幫我們進(jìn)行注冊(cè); 當(dāng)我們?nèi)绻獜娜萜髦蝎@取一個(gè) Bean 時(shí), 則需要使用 BeanFactory.

也就是說(shuō) BeanDefinition 就是用來(lái)描述 Bean, BeanDefinitionRegistry 用來(lái)注冊(cè)和管理BeanDefinition, BeanFactory 用來(lái)管理 Bean.

要注意的是 BeanFactory 采用延遲初始化策略: 只有當(dāng)訪問(wèn)容器中的某個(gè)對(duì)象時(shí), 才對(duì)該對(duì)象進(jìn)行初始化和依賴注入操作.

還有一個(gè)比它更高級(jí)的叫做 ApplicationContext 除了具有 BeanFactory 的所有能力之外, 還提供對(duì)事件監(jiān)聽(tīng)機(jī)制以及國(guó)際化的支持等.

ApplicationContext 構(gòu)建在 BeanFactory 上, 并且在容器啟動(dòng)時(shí)全部完成初始化和依賴注入操作.
Bean 作用范圍(scope)
范圍 說(shuō)明
singleton 這是默認(rèn)Scope,表示在整個(gè)bean容器中或者說(shuō)是整個(gè)應(yīng)用中只會(huì)有一個(gè)實(shí)例。
prototype 多例類型,表示每次從bean容器中都會(huì)獲取到一個(gè)對(duì)應(yīng)bean定義全新的實(shí)例。
request 僅適用于Web環(huán)境下的ApplicationContext,表示每一個(gè)HttpRequest生命周期內(nèi)會(huì)有一個(gè)多帶帶的實(shí)例,即每一個(gè)Http請(qǐng)求都會(huì)擁有一個(gè)多帶帶的實(shí)例。
session 僅適用于Web環(huán)境下的ApplicationContext,表示每一個(gè)HttpSession生命周期內(nèi)會(huì)有一個(gè)多帶帶的實(shí)例,即每一個(gè)HttpSession下都會(huì)擁有一個(gè)多帶帶的實(shí)例,即每一個(gè)用戶都將擁有一個(gè)多帶帶的實(shí)例。
application 僅適用于Web環(huán)境下的ApplicationContext,表示在ServletContext生命周期內(nèi)會(huì)擁有一個(gè)多帶帶的實(shí)例,即在整個(gè)ServletContext環(huán)境下只會(huì)擁有一個(gè)實(shí)例。
websocket 將單個(gè)bean定義范圍限定為WebSocket的生命周期。 僅在Web Spring ApplicationContext的上下文中有效。

可以通過(guò)注解 @Scope 進(jìn)行指定

@Component
@Scope("prototype")
public class Hello {
    
}

如果作用范圍是 request session application 則可以使用相應(yīng)的 @RequestScope @SessionScope @ApplicationScope 注解.

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/72450.html

相關(guān)文章

  • Spring 的基本應(yīng)用——IoC 和 AOP

    摘要:的兩大核心機(jī)制是控制反轉(zhuǎn)和面向切面編程,對(duì)于初學(xué)者來(lái)講,搞清楚這兩個(gè)核心機(jī)制就掌握了的基本應(yīng)用。配置對(duì)象張三添加標(biāo)簽對(duì)應(yīng)屬性名,是屬性的值。若包含特殊字符,比如張三,使用張三進(jìn)行配置,如下所示。 前言 對(duì)于任何一個(gè) Java 開(kāi)發(fā)人員,Spring 的大名一定如雷貫耳,在行業(yè)中可謂是無(wú)人不知、無(wú)人不曉,說(shuō)它是 Java 領(lǐng)域第一框架毫不為過(guò)。 showImg(https://segme...

    DirtyMind 評(píng)論0 收藏0
  • Spring入門(mén)看這一篇就夠了

    摘要:甲乙交易活動(dòng)不需要雙方見(jiàn)面,避免了雙方的互不信任造成交易失敗的問(wèn)題。這就是的核心思想。統(tǒng)一配置,便于修改。帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建對(duì)象首先,就要提供帶參數(shù)的構(gòu)造函數(shù)接下來(lái),關(guān)鍵是怎么配置文件了。 前言 前面已經(jīng)學(xué)習(xí)了Struts2和Hibernate框架了。接下來(lái)學(xué)習(xí)的是Spring框架...本博文主要是引入Spring框架... Spring介紹 Spring誕生: 創(chuàng)建Spring的...

    superw 評(píng)論0 收藏0
  • 零基礎(chǔ)帶你看Spring源碼——IOC控制反轉(zhuǎn)

    摘要:依賴注入是向某個(gè)類或方法注入一個(gè)值,其中所用到的原理就是控制反轉(zhuǎn)。但發(fā)現(xiàn)更多時(shí)間是在調(diào)和的源碼。里面就是從中取出這個(gè),完成控制反轉(zhuǎn)的。控制反轉(zhuǎn)的優(yōu)點(diǎn)最后來(lái)以我個(gè)人觀點(diǎn)談?wù)効刂品崔D(zhuǎn)的優(yōu)點(diǎn)吧。控制反轉(zhuǎn)為了降低項(xiàng)目耦合,提高延伸性。 本章開(kāi)始來(lái)學(xué)習(xí)下Spring的源碼,看看Spring框架最核心、最常用的功能是怎么實(shí)現(xiàn)的。網(wǎng)上介紹Spring,說(shuō)源碼的文章,大多數(shù)都是生搬硬推,都是直接看來(lái)的...

    wing324 評(píng)論0 收藏0
  • Spring框架之我見(jiàn)(三)——IOC、AOP

    摘要:模塊負(fù)責(zé)的所有面向切面的功能。總結(jié)的統(tǒng)一管理,降低了對(duì)象之間的耦合對(duì)主流的框架提供了很好的集成支持提供眾多組件,事務(wù)管理,等具有高度可開(kāi)放性,開(kāi)發(fā)者可以自由選擇部分或全部主要使用工廠模式和代理模式。 聊完了Spring框架中最重要的兩種設(shè)計(jì)模式,我們來(lái)看一下Spring框架的模塊和結(jié)構(gòu)圖。 Spring框架的結(jié)構(gòu) 下圖是Spring官方給出的Spring框架的結(jié)構(gòu)圖。 showImg(...

    khs1994 評(píng)論0 收藏0
  • 徒手?jǐn)]框架--實(shí)現(xiàn)IoC

    摘要:從而能夠進(jìn)一步深入了解框架。至此我們框架開(kāi)發(fā)完成。雖然說(shuō)閱讀源碼是了解框架的最終手段。但是框架作為一個(gè)生產(chǎn)框架,為了保證通用和穩(wěn)定,源碼必定是高度抽象,且處理大量細(xì)節(jié)。下一篇文章應(yīng)該會(huì)是徒手?jǐn)]框架實(shí)現(xiàn)。 原文地址:https://www.xilidou.com/2018/... Spring 作為 J2ee 開(kāi)發(fā)事實(shí)上的標(biāo)準(zhǔn),是每個(gè)Java開(kāi)發(fā)人員都需要了解的框架。但是Spring 的...

    rottengeek 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<