精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring 注解@Bean使用方式你都知道嗎?

開發 前端
提供一個bean的更詳細的文本描述是有幫助的。當bean被公開(可能是通過JMX)用于監視目的時,這可能特別有用。

環境:Spring5.3.25

@Bean是方法級注釋,是XML <bean/>元素的直接類比。注解支持<bean/>提供的一些屬性,例如:

  • init-method
  • destroy-method
  • autowiring
  • name.

你可以在@Configuration或@Component類中使用@Bean注釋。

聲明Bean

要聲明bean,可以使用@Bean注釋對方法進行注釋。可以使用此方法在ApplicationContext中注冊bean定義,其類型指定為該方法的返回值。默認情況下,bean名與方法名相同。下面的例子展示了一個@Bean方法聲明:

@Configuration
public class AppConfig {


  @Bean
  public TransferServiceImpl transferService() {
    return new TransferServiceImpl();
  }
}

前面的配置與下面的Spring XML完全等效:

<beans>
  <bean id="transferService" class="com.acme.TransferServiceImpl"/>
</beans>

這兩個聲明都使一個名為transferService的bean在ApplicationContext中可用,綁定到類型為TransferServiceImpl的對象實例,如下圖所示:

transferService -> com.acme.TransferServiceImpl

你也可以使用默認方法來定義bean。這允許通過在默認方法上實現帶有bean定義的接口來組合bean配置。

public interface BaseConfig {


  @Bean
  default TransferServiceImpl transferService() {
    return new TransferServiceImpl();
  }
}


@Configuration
public class AppConfig implements BaseConfig {
}

你還可以用接口(或基類)返回類型聲明@Bean方法,如下例所示:

@Configuration
public class AppConfig {


  @Bean
  public TransferService transferService() {
    return new TransferServiceImpl();
  }
}

然而,這將高級類型預測的可見性限制為指定的接口類型(TransferService)。然后,只有在實例化了受影響的單例bean之后,容器才知道完整類型(TransferServiceImpl)。非惰性單例bean根據其聲明順序進行實例化,因此你可能會看到不同的類型匹配結果,這取決于另一個組件何時嘗試通過非聲明類型進行匹配(例如@Autowired TransferServiceImpl,它只在transferServicebean實例化后才解析)。

Bean依賴

一個@Bean注釋的方法可以有任意數量的參數來描述構建該Bean所需的依賴關系。例如,如果我們的TransferService需要一個AccountRepository,我們可以用一個方法參數來實現該依賴關系,如下例所示:

@Configuration
public class AppConfig {


  @Bean
  public TransferService transferService(AccountRepository accountRepository) {
    return new TransferServiceImpl(accountRepository);
  }
}

解析機制與基于構造函數的依賴注入非常相似。

Bean生命周期

使用@Bean注釋定義的任何類都支持常規的生命周期回調,并且可以使用JSR-250中的@PostConstruct和@PreDestroy注釋。

也完全支持常規的Spring生命周期回調。如果bean實現InitializingBean、DisposableBean或Lifecycle,那么容器將調用它們各自的方法。

還完全支持一組標準的*Aware接口(如BeanFactoryAware、BeanNameAware、MessageSourceAware、ApplicationContextAware等)。

@Bean注釋支持指定任意的初始化和銷毀回調方法,就像Spring XML在Bean元素上的init方法和destroy方法屬性一樣,如下例所示:

public class BeanOne {


  public void init() {
    // initialization logic
  }
}


public class BeanTwo {


  public void cleanup() {
    // destruction logic
  }
}


@Configuration
public class AppConfig {


  @Bean(initMethod = "init")
  public BeanOne beanOne() {
    return new BeanOne();
  }


  @Bean(destroyMethod = "cleanup")
  public BeanTwo beanTwo() {
    return new BeanTwo();
  }
}

默認情況下,使用Java配置定義的具有公共close或shutdown方法的bean會自動使用銷毀回調進行登記。如果你有一個公共的close或shutdown方法,并且不希望在容器關閉時調用它,那么可以將@Bean(destroyMethod="")添加到Bean定義中,以禁用默認(推斷)模式。

public class Main {


  static class Person {
    public void close() {
      System.out.println("close") ;
    }
    public void shutdown() {
      System.out.println("shutdown") ;
    }
  }
  @Configuration
  static class AppConfig {
    @Bean
    // @Bean(destroyMethod = "") 這樣就禁用了關閉的操作(close和shutdown)
    public Person person() {
      return new Person() ;
    }
  }
  
  public static void main(String[] args) {
    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class) ;
    context.close() ;
  }
  
}

注意:如果一個類中既有close方法又有shutdown方法,那么只有close方法生效。

以前面示例中的BeanOne為例,在構造過程中直接調用init()方法同樣有效,如下面的例子所示:

@Configuration
public class AppConfig {


  @Bean
  public BeanOne beanOne() {
    BeanOne beanOne = new BeanOne();
    beanOne.init();
    return beanOne;
  }
}

當你直接在Java中工作時,你可以對對象執行任何你喜歡的操作,而不必總是依賴于容器生命周期。

Bean作用域

Spring包含@Scope注釋,以便您可以指定bean的范圍。

你可以指定使用@Bean注釋定義的Bean應該具有特定的作用域。可以使用Bean scopes部分中指定的任何標準作用域。

默認作用域是singleton,但您可以使用@Scope注釋來覆蓋它,如下例所示:

@Configuration
public class MyConfiguration {


  @Bean
  @Scope("prototype")
  public Encryptor encryptor() {
    // ...
  }
}

@Scope and scoped-proxy

Spring通過作用域代理提供了一種方便的方式來處理作用域依賴。在使用XML配置時,創建這樣一個代理的最簡單方法是<aop:scope -proxy/>元素。在Java中配置bean時,使用@Scope注解可以為proxyMode屬性提供類似的支持。默認值是ScopedProxyMode.DEFAULT,它通常表示不應該創建scoped proxy,除非在組件掃描指令級別配置了不同的DEFAULT。你可以指定
ScopedProxyMode.TARGET_CLASS ScopedProxyMode。接口或ScopedProxyMode.NO。

如果你使用Java將XML參考文檔(參見“限定范圍的代理”)中的限定范圍代理示例移植到我們的@Bean,它類似于以下內容:

// an HTTP Session-scoped bean exposed as a proxy
@Bean
@SessionScope
public UserPreferences userPreferences() {
  return new UserPreferences();
}


@Bean
public Service userService() {
  UserService service = new SimpleUserService();
  // a reference to the proxied userPreferences bean
  service.setUserPreferences(userPreferences());
  return service;
}

自定義Bean命名

默認情況下,配置類使用@Bean方法的名稱作為生成的Bean的名稱。但是,可以使用name屬性覆蓋此功能,如以下示例所示:

@Configuration
public class AppConfig {


  @Bean("myThing")
  public Thing thing() {
    return new Thing();
  }
}

Bean別名

正如Naming Beans中所討論的,有時需要為單個bean提供多個名稱,也稱為bean別名。@Bean注釋的name屬性接受用于此目的的String數組。以下示例顯示了如何為bean設置多個別名:

@Configuration
public class AppConfig {


  @Bean({"dataSource", "subsystemA-dataSource", "subsystemB-dataSource"})
  public DataSource dataSource() {
    // instantiate, configure and return DataSource bean...
  }
}

Bean描述

有時,提供一個bean的更詳細的文本描述是有幫助的。當bean被公開(可能是通過JMX)用于監視目的時,這可能特別有用。

要向@Bean添加描述,可以使用@Description注釋,如下例所示:

@Configuration
public class AppConfig {


  @Bean
  @Description("Provides a basic example of a bean")
  public Thing thing() {
    return new Thing();
  }
}

完畢!!!

責任編輯:武曉燕 來源: 實戰案例錦集
相關推薦

2023-04-23 09:50:50

@BeanSpring

2023-08-29 09:31:01

Scrapy網頁爬蟲

2019-02-12 11:15:15

Spring設計模式Java

2020-02-20 08:30:49

OSPF網絡協議路由協議

2024-04-28 08:20:52

Controller接口URL

2023-02-15 08:12:19

http超時過濾器

2021-07-29 06:55:03

Spring@AutowriedbyType注入

2023-08-30 07:39:16

PawSQL數據庫

2020-09-11 06:39:29

ThreadLocal線程

2024-01-18 07:46:53

HookReact回調函數

2020-09-28 11:14:57

線程數據語言

2021-11-17 11:03:14

Python代碼語法

2016-01-11 09:48:07

2021-08-05 18:21:29

Autowired代碼spring

2024-02-05 12:08:07

線程方式管理

2023-02-13 08:10:40

Gateway網關Spring

2016-03-18 19:03:35

認知計算IBM

2022-11-10 09:00:41

2018-07-04 11:02:23

無線傳輸模式

2023-02-01 08:31:36

JavaScript循環遍歷
點贊
收藏

51CTO技術棧公眾號

欧美特黄视频| 亚洲高清999| 国产精品乱码久久久久久| 国产免费一区视频观看免费| 欧美激情精品久久久久久免费| 欧美国产中文高清| 欧美日韩国产一区二区三区| 日韩精品大片| 曰批又黄又爽免费视频| 欧美三级在线| 中文字幕精品网| 国产成人精品一区二区在线小狼| 极品av在线| 国产精品久久久一本精品| 福利视频久久| 亚洲永久精品一区| 亚洲先锋成人| 北条麻妃在线一区二区| 国产熟女高潮一区二区三区| 日韩av黄色| 欧美日韩国产一区中文午夜| 在线无限看免费粉色视频| 手机看片一区二区| 老汉av免费一区二区三区| 国内精品久久久久伊人av| 精品在线观看一区| 伊人春色精品| 亚洲第一页在线| 国产乱叫456| 亚洲wwww| 黑人巨大精品欧美一区二区一视频| 杨幂一区欧美专区| 你懂的在线网址| 日韩大陆av| 欧美日韩午夜激情| 男人天堂网站在线| 日本电影在线观看网站| 久久久久高清精品| 国产精品一区在线播放| 国产999久久久| 免费视频一区二区| 国产suv精品一区二区三区88区| 精品处破女学生| 日韩欧美在线中字| 中文字幕日韩精品在线| 色婷婷在线影院| 五月国产精品| 亚洲激情电影中文字幕| 国产91在线免费观看| 国产一区二区三区四区五区3d| 欧美性69xxxx肥| 精品一区二区三区无码视频| 成人免费网址| 亚洲日穴在线视频| 在线无限看免费粉色视频| 欧美videos极品另类| 中日韩免费视频中文字幕| 日本一区二区精品| 二人午夜免费观看在线视频| 久久久久成人黄色影片| 日韩高清三级| 亚洲成a人v欧美综合天堂麻豆| 国产人妖乱国产精品人妖| 欧美日韩综合精品| 岛国在线视频| 国产精品免费久久| 中文字幕99| 中文字幕在线播放网址| 亚洲欧美日韩久久| 国产成人亚洲综合无码| 免费污视频在线观看| 亚洲成av人片在线观看无码| 男人操女人逼免费视频| 忘忧草在线影院两性视频| 日韩欧美精品网站| 国产精品少妇在线视频| 激情中国色综合| 欧美一区二区视频在线观看2022 | 国产粉嫩在线观看| 精品久久久久久亚洲国产300| 亚洲熟妇无码一区二区三区导航| 乱馆动漫1~6集在线观看| 狠狠综合久久av一区二区小说| 激情网站五月天| 国产精品99精品一区二区三区∴| 这里只有精品视频在线观看| 女性生殖扒开酷刑vk| 亚洲福利网站| www.美女亚洲精品| 国产一级在线观看视频| 美女爽到呻吟久久久久| 国产中文日韩欧美| 丰满人妻一区二区三区免费| 久久香蕉国产线看观看99| 亚洲电影一二三区| 牛牛精品视频在线| 在线精品亚洲一区二区不卡| 福利视频999| 国产精品午夜av| 国产亚洲精品久久久| 亚洲综合网在线| 国产欧美日本| 91久久久久久久久久久久久| 凸凹人妻人人澡人人添| 日韩一区在线看| 国产精品自拍片| 欧美男男gaygay1069| 欧美精品一区二区三区蜜桃视频| a天堂中文字幕| 欧美日韩综合| 国产精品麻豆va在线播放| 免费av网站在线播放| 国产精品理论片| 欧美色图色综合| 少妇精品在线| 中国日韩欧美久久久久久久久| 免费毛片在线播放免费| 日本中文字幕一区二区有限公司| 不卡一卡2卡3卡4卡精品在| 国产1区2区3区在线| 天天av天天翘天天综合网| 九色porny自拍| 亚洲免费成人av在线| 久久福利视频网| 中文字幕91爱爱| 91丨九色丨尤物| 夜夜添无码一区二区三区| 欧美成人三级| 中日韩午夜理伦电影免费 | 91在线观看免费高清| 国产成人天天5g影院在线观看| 亚洲a一区二区| 少妇丰满尤物大尺度写真| 日韩啪啪电影网| 国产91在线播放九色快色| 午夜激情在线视频| 亚洲一区欧美一区| 中文字幕乱码在线人视频| 91视频一区| 国产精品亚洲第一区| 你懂得网站在线| 黑人欧美xxxx| 一本色道综合久久欧美日韩精品| 亚洲一级黄色| 国产高清自拍一区| 国产精品一区hongkong| 欧美成人三级电影在线| 欧美激情图片小说| 国产精品影视天天线| 亚洲区成人777777精品| 99久久99九九99九九九| 久久天天躁狠狠躁老女人| 97人妻人人澡人人爽人人精品| 亚洲国产电影在线观看| 无人在线观看的免费高清视频| 九九免费精品视频在线观看| 青青在线视频一区二区三区| 日本a一级在线免费播放| 日韩欧美精品中文字幕| 全黄一级裸体片| 日韩高清国产一区在线| 亚洲第一综合| 国产午夜亚洲精品一级在线| 美女国内精品自产拍在线播放| 99热这里只有精品在线| 亚洲综合色视频| 日韩aaaaa| 久久久久久婷| 亚洲欧洲日韩综合二区| 国产精品欧美一区二区三区不卡| 免费97视频在线精品国自产拍| 国产浮力第一页| 亚洲成av人片在线观看| 免费看黄色的视频| 毛片av一区二区三区| av电影一区二区三区| 亚洲不卡视频| 欧洲精品久久久| 69xxxx欧美| 欧美一级欧美三级在线观看| 青娱乐在线视频免费观看| av一二三不卡影片| 日韩av播放器| 女主播福利一区| 久久日韩精品| 久热av在线| 欧洲国内综合视频| 成人黄色毛片| 精品香蕉一区二区三区| 久久久久久久久久成人| 国产精品成人在线观看| 人妻av一区二区三区| 亚洲欧美日韩专区| 一区二区三区免费看| 91精品导航| 国产成人综合av| 国产成人自拍偷拍| 亚洲色图.com| 丰满少妇高潮一区二区| 国产精品资源在线| 黄色片视频在线播放| 希岛爱理av一区二区三区| 国产区一区二区| 国产精品麻豆成人av电影艾秋| 欧美猛交免费看| 免费国产在线观看| 日韩女优av电影在线观看| 69亚洲精品久久久蜜桃小说 | 五月开心播播网| 青青草原综合久久大伊人精品优势| 99久re热视频精品98| 国产一区二区亚洲| 国产伦精品一区二区三区视频黑人 | 99精品久久99久久久久| 自拍偷拍一区二区三区四区| 欧美特黄a级高清免费大片a级| 天堂资源在线亚洲视频| 久久97精品| 亚洲在线www| 欧美大片1688网站| 欧美亚洲视频在线观看| 污视频网站在线免费| 中文字幕日韩综合av| 五月婷婷丁香网| 欧美mv和日韩mv的网站| 99久久国产免费| 欧美图片一区二区三区| 伊人中文字幕在线观看| 亚洲福利一区二区三区| 精品国产精品国产精品| 国产精品伦理一区二区| 亚洲国产天堂av| 91在线观看视频| 人妻换人妻a片爽麻豆| 黄页网站大全一区二区| 黄色三级视频在线| 久久精选视频| 久久精品免费一区二区| 亚洲伦伦在线| 日韩a级在线观看| 国语精品一区| 17c丨国产丨精品视频| 91精品国产视频| 伊人狠狠色丁香综合尤物| 波多野结衣一区| 日韩av电影免费观看| 色棕色天天综合网| 农村寡妇一区二区三区| 偷拍亚洲色图| 鲁丝一区鲁丝二区鲁丝三区| 欧美日韩大片免费观看| 国产精品久久国产三级国电话系列| 精品国产第一国产综合精品| 91久久精品久久国产性色也91| 久久精品 人人爱| 国产区精品在线观看| 日本一区二区中文字幕| 91免费视频网站| 欧美成人精品午夜一区二区| 91精品国产综合久久久久久丝袜 | 国产精品12| 成人爽a毛片免费啪啪红桃视频| 高清日韩一区| 欧美成人专区| 任我爽在线视频精品一| 国产一区二区三区四区二区| 日韩电影免费观看在| 色喇叭免费久久综合| 少妇熟女一区二区| 黄色精品一区| 免费在线观看日韩视频| 日本大胆欧美人术艺术动态| 男女视频在线看| 国产裸体歌舞团一区二区| 国产午夜在线一区二区三区| 26uuu国产日韩综合| 精品国产aaa| 日韩美女久久久| 日本在线视频免费| 色婷婷亚洲一区二区三区| 中文字幕一区2区3区| 9191精品国产综合久久久久久 | 成人勉费视频| 国产精品美女呻吟| 一区二区三区视频播放| 久久久久久国产精品一区| 欧美另类69xxxxx| 国产女人18毛片| 国产精品美女| 亚洲免费成人在线视频| 国产99一区视频免费| 日韩乱码人妻无码中文字幕久久| 国产免费观看久久| 91在线播放观看| 亚洲成a人片在线观看中文| 中文字幕二区三区| 日韩一级大片在线| 国产高清视频在线播放| 欧美男插女视频| 日韩福利一区| av免费观看久久| japanese国产精品| 免费高清一区二区三区| 日本在线不卡视频一二三区| www男人天堂| 国产精品乱人伦中文| 99热国产在线观看| 欧美日韩国产首页| 日韩大胆人体| 欧美大片免费观看| 电影亚洲一区| 免费成人深夜夜行视频| 你懂的视频一区二区| 黑森林精品导航| 99久久国产综合精品麻豆| 黄视频网站免费看| 91国在线观看| 性感美女福利视频| 欧美成人精品不卡视频在线观看| 日韩av中字| 极品日韩久久| 欧美日韩一区二区三区四区在线观看| 午夜免费精品视频| 久久伊人中文字幕| 国产无遮挡又黄又爽| 欧美一区二区三区系列电影| www.亚洲.com| 日韩美女在线看| 久久1电影院| 国产精品一线二线三线| 国产乱码精品一区二区三区忘忧草| 免费福利视频网站| 色噜噜狠狠色综合欧洲selulu| 色一情一乱一区二区三区| 欧美成年人在线观看| 青青久久精品| 一区二区三区欧美在线| 秋霞影院一区二区| 亚洲女优在线观看| 欧美性猛交xxxx| 亚洲三区在线观看无套内射| 久久噜噜噜精品国产亚洲综合 | 日韩一区二区精品葵司在线| 免费日本一区二区三区视频| 国产精品女主播| 成人情趣视频| 日本人视频jizz页码69| 中文字幕第一区二区| 免费看av在线| 在线观看国产精品91| 日韩不卡在线| 亚洲美女搞黄| 久久99精品国产麻豆婷婷| 国产日产在线观看| 91精品国产综合久久香蕉麻豆 | 亚洲欧洲成人av每日更新| 中文字幕欧美人妻精品一区蜜臀| 国产一区二区三区在线观看网站| 久久久一本精品| 日韩精品资源| 麻豆国产精品777777在线| 波多野结衣喷潮| 91精品福利在线一区二区三区| 超碰电影在线播放| 91精品久久久久久蜜桃| 亚洲大胆av| 精品少妇一区二区三区免费观| 一本大道av伊人久久综合| 国产午夜视频在线观看| 国产免费一区二区三区香蕉精| 亚洲一区二区三区| 男人女人拔萝卜视频| 亚洲电影激情视频网站| 青青草av免费在线观看| 国产精品视频内| 欧美在线三区| 99久久人妻精品免费二区| 欧美亚洲综合色| а√中文在线8| 国产综合欧美在线看| 日韩高清不卡在线| 中文字幕另类日韩欧美亚洲嫩草| 亚洲福利在线播放| 巨胸喷奶水www久久久免费动漫| 影音先锋男人的网站| 成人激情小说网站| 欧美超碰在线观看| 久久99热精品这里久久精品| 五月激激激综合网色播| 一区二区在线免费看| 亚洲一卡二卡三卡四卡无卡久久| 亚洲色偷精品一区二区三区| 国产日韩av在线| 在线观看的日韩av| 免费看91的网站| 精品少妇一区二区三区日产乱码 | 日本aaa视频| 91精品久久久久久久99蜜桃 | 成人网视频在线观看| 亚洲一区中文字幕|