精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美日产国产精品| 97人妻精品一区二区三区动漫| 色哟哟一一国产精品| 超碰在线影院| 视频一区视频二区欧美| 先锋亚洲精品| 欧美挠脚心视频网站| 国产自产精品| 免费黄色激情视频| 看亚洲a级一级毛片| 国产午夜精品福利| 久久久久久成人| 亚洲va综合va国产va中文| 同心难改在线观看| 欧美精品综合| 欧美一区二区三区四区在线观看| 亚洲综合中文字幕在线观看| 91l九色lporny| 人成在线免费网站| 顶级嫩模精品视频在线看| 日韩视频在线一区| 丰满人妻中伦妇伦精品app| 国产欧美第一页| 久久亚洲国产| 日本高清不卡视频| 日本在线免费观看一区| 国产成人在线视频观看| 国模大尺度视频一区二区| 中文字幕欧美区| 国产成人综合亚洲| 国产精品密蕾丝袜| 外国成人直播| 91蜜桃传媒精品久久久一区二区| 亚洲精品综合精品自拍| 日韩a级黄色片| av网站免费播放| 在线一区免费| 亚洲成人毛片| 中文字幕一区二区三区在线视频 | 四虎影院观看视频在线观看| 久久精品一区| 亚洲三级av在线| 精品久久久久久中文字幕2017| 亚洲欧美日韩一区二区三区四区| 欧美日一区二区三区| 26uuu欧美| 成人av影视在线| 日本天堂在线视频| 精品精品国产毛片在线看| 洋洋成人永久网站入口| 99在线观看视频网站| 一级黄色大片免费| 精品视频亚洲| 51精品久久久久久久蜜臀| 亚洲欧洲久久| 精品国产伦一区二区三区| 综合天堂av久久久久久久| 中文字幕在线成人| 95视频在线观看| 日韩电影毛片| 亚洲国产精品久久久男人的天堂| 国产精品91视频| 国产精品成人久久| 国产一区二区三区探花| 欧美日韩国产一级片| 人人干人人视频| 性直播体位视频在线观看| 亚洲欧美日韩精品久久久久| 国产九色精品| 波多野结衣一二区| 日韩电影免费在线| 欧美黄色www| 亚洲人成人无码网www国产| 亚洲激情播播| 欧美一区二区三区四区久久| 亚洲成人天堂网| 国内在线免费视频| 久久精品欧美日韩精品| 奇米视频888战线精品播放| 国产伦精品一区二区三区视频痴汉| 欧美一区二区| 国产手机视频精品| 91丝袜超薄交口足| 涩涩视频在线| 91精品91久久久中77777| 丝袜制服一区二区三区| 自拍偷拍欧美日韩| 91久久国产综合久久| 一区二区三区免费播放| 麻豆mv在线观看| 色综合激情久久| www.日本少妇| 视频三区在线| 久久久午夜精品理论片中文字幕| 2021久久精品国产99国产精品| 无码人妻丰满熟妇区毛片蜜桃精品| 国产美女av在线| 91免费国产在线观看| 欧美日韩一区二区三区免费| 国产成人精品一区二三区四区五区| 日韩国产精品久久久| 91精品免费看| 国产一级淫片a视频免费观看| 另类图片第一页| 日韩精品在线观| 91麻豆精品久久毛片一级| 午夜精品福利影院| 精品美女被调教视频大全网站| 丁香六月激情网| 欧美日韩在线资源| 久久精品一区二区三区不卡| 在线码字幕一区| 国产在线视频资源| 久久蜜桃av一区精品变态类天堂| 国产精品视频久久久久| 国产精品男女视频| 久久91精品久久久久久秒播| 日本久久久久久久久久久| 国产性xxxx高清| 亚洲国产专区校园欧美| 欧美国产精品va在线观看| 欧美激情按摩在线| 久久久99999| 男人的天堂成人在线| 亚洲一区二区少妇| 国产福利小视频在线观看| 99久久免费精品| 韩国一区二区三区美女美女秀| 六月丁香在线视频| 亚洲激情午夜| 亚洲影视中文字幕| www.中文字幕久久久| 五月婷婷综合网| 日日碰狠狠添天天爽超碰97| 国产精品论坛| 欧美视频国产精品| 免费裸体美女网站| 91p九色成人| 欧美色区777第一页| 怡红院亚洲色图| 蜜桃精品wwwmitaows| 一本一道久久a久久精品逆3p| 手机看片国产精品| 日本精品在线观看| 日日骚久久av| 免费在线观看黄视频| 午夜电影亚洲| 成人两性免费视频| www.亚洲.com| 日本道精品一区二区三区 | av影院在线免费观看| 亚洲精品午夜久久久| av影院在线播放| 亚洲精品三区| 精品国内产的精品视频在线观看| 在线观看日韩精品视频| 亚洲精品456| 91精品国产免费久久久久久| 国产日韩久久久| 国产精品一品视频| 国产一区二区三区黄| 色呦呦在线视频| 精品久久久久久久久久久院品网| 性久久久久久久久久 | 97中文在线观看| 六月婷婷中文字幕| 91社区在线播放| 成年人午夜视频在线观看| 毛片免费看不卡网站| 欧美日韩精品欧美日韩精品一| 国产精品二区视频| 国产精品av久久久久久麻豆网| 久久免费成人精品视频| 99久久久无码国产精品不卡| 手机精品视频在线观看| 91沈先生播放一区二区| 日本片在线观看| 亚洲精品久久视频| 小向美奈子av| 国产成人综合自拍| 亚洲精品一区二区三区樱花| 欧美成人三级| 国产视频精品va久久久久久| 日本高清不卡码| 中国av一区二区三区| 91香蕉视频在线观看视频| 免费短视频成人日韩| 国产免费成人av| 亚洲av成人精品毛片| 亚洲精品中文字幕在线观看| 2018国产精品| 久久久久国产精品午夜一区| 亚洲国产一区二区在线| 欧美9999| 日本久久久久久| 91精品久久| 欧美乱熟臀69xxxxxx| 久久中文免费视频| 蜜臂av日日欢夜夜爽一区| 久久精品日产第一区二区三区 | 色综合久久88色综合天天提莫| 色婷婷在线视频| 国产精品色婷婷久久58| 国产午夜伦鲁鲁| 国产精品x8x8一区二区| 欧美成人免费全部观看天天性色| 免费一级肉体全黄毛片| 97aⅴ精品视频一二三区| 欧美久久在线观看| 精品欧美久久| 国产精品一区二区av| 国产在视频一区二区三区吞精| 亚洲欧美日韩一区在线| 国产精品无码久久av| 午夜欧美一区二区三区在线播放| 精品乱色一区二区中文字幕| 夫妻性生活毛片| 午夜影院日韩| 潘金莲一级淫片aaaaa免费看| 天堂地址在线www| 精品国产免费一区二区三区四区 | 先锋影音一区二区| 91精品国产乱码久久久久久蜜臀 | 亚洲欧洲专区| 欧美在线激情网| 日本xxxxwww| 亚洲一区二区三区四区五区中文 | 免费国产一区二区| 9lporm自拍视频区在线| 中日韩美女免费视频网站在线观看 | 偷窥自拍亚洲色图精选| 亚洲综合国产精品| 欧美aaaaaaaa| 国产精品成人国产乱一区| 日本不卡免费播放| 91久久奴性调教| 日本少妇在线观看| 亚洲一区二区美女| www.xxxx日本| 国产精品网站导航| 少妇精品无码一区二区免费视频| 久久精品国产精品亚洲红杏| 色一情一区二区三区四区| 青青草原在线亚洲| 国产不卡av在线| 亚洲性受xxx喷奶水| 性欧美xxxx视频在线观看| 男人天堂综合网| 日韩免费电影网站| 国产精品男女视频| 天天综合色天天综合| 亚洲最大成人综合网| 91老师国产黑色丝袜在线| 人妻激情偷乱频一区二区三区| 欧美色网址大全| 91久久夜色精品国产网站| av网址在线| 精品国产一区二区三区在线观看 | 日本中文字幕网| 亚洲最新视频在线观看| 欧美精品久久久久性色| 亚洲最大成人网4388xx| 日本网站免费观看| 色综合天天综合狠狠| 国产精品尤物视频| 精品视频999| 国产欧美综合视频| 欧美mv日韩mv亚洲| 四虎精品在永久在线观看| 亚洲视屏在线播放| 欧美被日视频| 欧美激情手机在线视频| 美女露胸视频在线观看| 日本成人激情视频| 久久天堂av| 91麻豆桃色免费看| 成人18夜夜网深夜福利网| 日本亚洲欧美三级| 久久亚洲精品人成综合网| 亚洲www在线观看| 久久porn| 亚洲免费久久| 狠狠干成人综合网| 日韩中文字幕av在线| 欧美丰满老妇| 97干在线视频| 石原莉奈在线亚洲二区| 久久人人爽av| 不卡一区二区在线| 三级黄色片免费观看| 成人av高清在线| 老熟妇一区二区| 一区二区欧美视频| www五月天com| 日韩一区二区视频| 国产一区二区在线播放视频| 日韩欧美综合在线| 日本ー区在线视频| 久久成人这里只有精品| 免费在线看黄网站| 久久人人爽人人| 四虎国产精品免费久久5151| 国产亚洲第一区| 国产精品99在线观看| 亚洲v国产v在线观看| 欧美激情综合色综合啪啪| 色一情一乱一伦一区二区三区日本 | 亚洲精品中文字幕有码专区| 二区三区在线| 久久久久久久网站| 日本黄色成人| 欧美激情视频一区二区三区| 欧美精品1区| 三年中国国语在线播放免费| 国产白丝精品91爽爽久久| 国产一区二区在线免费播放| 成人综合在线观看| 欧美xxxooo| 在线中文字幕一区二区| 欧美一级片在线播放| 青青在线视频| 欧美黑人视频一区| 久久夜夜久久| 欧洲在线视频一区| 国产精品婷婷| 亚洲中文字幕久久精品无码喷水 | 可以看毛片的网址| 美女爽到高潮91| 中文字幕xxx| 亚洲国产一区二区视频| 91麻豆视频在线观看| 国产亚洲精品久久久久动| 国家队第一季免费高清在线观看| 亚洲欧美成人精品| av在线中出| 成人av免费看| 韩国亚洲精品| 中文字幕一二三区| 亚洲欧美成人一区二区三区| 中文字幕在线观看精品| 911精品国产一区二区在线| 国产在线小视频| 日av在线播放中文不卡| 亚洲精品合集| 美女av免费在线观看| 91在线观看高清| 啦啦啦免费高清视频在线观看| 在线观看免费成人| 国产精品一级伦理| 国产精品久久久久久久久影视| 亚洲三级电影| 亚洲一区二区三区免费观看| 亚洲国产一区二区在线观看 | 国产欧美日韩| 毛片一区二区三区四区| 91香蕉视频在线| 国产精品一区二区三区四| 精品国产污网站| mm视频在线视频| 久久亚洲午夜电影| 爽爽淫人综合网网站| 影音先锋制服丝袜| 欧美日韩亚洲综合一区二区三区| 国产 欧美 精品| 午夜精品久久久久久久男人的天堂 | 伊人久久综合影院| 国产激情在线观看视频| 国产人久久人人人人爽| 国产大屁股喷水视频在线观看| 亚洲一区二区在线观看视频| 亚洲AV无码精品自拍| 亚洲色图校园春色| 国产黄色精品| 日本丰满少妇黄大片在线观看| 国产精品久久久亚洲一区| 懂色av粉嫩av蜜乳av| 色丁香久综合在线久综合在线观看| 99久久精品免费看国产交换| 美女av一区二区| 国产在线播放精品| 动漫av免费观看| 亚洲人成网站精品片在线观看| 国产午夜免费福利| 中文字幕精品久久久久| 精品国产不卡一区二区| 国产亚洲黄色片| 国产欧美视频在线观看| jlzzjlzzjlzz亚洲人| 91成品人片a无限观看| 99久精品视频在线观看视频| 久久久高清视频| 欧美视频一区二区在线观看| 日韩在线观看视频一区| 日本亚洲欧美成人| 欧美不卡在线| 熟女俱乐部一区二区| 欧美日韩精品在线视频| 国产成人无码www免费视频播放| 色婷婷综合成人av| 91精品尤物|