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

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

開發(fā) 架構(gòu)
要聲明Bean,可以使用@Bean注釋對(duì)方法進(jìn)行注釋。可以使用此方法在ApplicationContext中注冊(cè)Bean定義,其類型指定為該方法的返回值。默認(rèn)情況下,Bean名與方法名相同。

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

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

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

聲明Bean

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

@Configuration
public class AppConfig {

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

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

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

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

transferService -> com.acme.TransferServiceImpl

你也可以使用默認(rèn)方法來定義bean。這允許通過在默認(rèn)方法上實(shí)現(xiàn)帶有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();
}
}

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

Bean依賴

一個(gè)@Bean注釋的方法可以有任意數(shù)量的參數(shù)來描述構(gòu)建該Bean所需的依賴關(guān)系。例如,如果我們的TransferService需要一個(gè)AccountRepository,我們可以用一個(gè)方法參數(shù)來實(shí)現(xiàn)該依賴關(guān)系,如下例所示:

@Configuration
public class AppConfig {

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

解析機(jī)制與基于構(gòu)造函數(shù)的依賴注入非常相似。

Bean生命周期

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

也完全支持常規(guī)的Spring生命周期回調(diào)。如果bean實(shí)現(xiàn)InitializingBean、DisposableBean或Lifecycle,那么容器將調(diào)用它們各自的方法。

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

@Bean注釋支持指定任意的初始化和銷毀回調(diào)方法,就像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();
}
}

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

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 = "") 這樣就禁用了關(guān)閉的操作(closeshutdown
public Person person() {
return new Person() ;
}
}

public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class) ;
context.close() ;
}

}

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

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

@Configuration
public class AppConfig {

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

當(dāng)你直接在Java中工作時(shí),你可以對(duì)對(duì)象執(zhí)行任何你喜歡的操作,而不必總是依賴于容器生命周期。

Bean作用域

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

你可以指定使用@Bean注釋定義的Bean應(yīng)該具有特定的作用域。可以使用Bean scopes部分中指定的任何標(biāo)準(zhǔn)作用域。

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

@Configuration
public class MyConfiguration {

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

@Scope and scoped-proxy

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

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

// 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命名

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

@Configuration
public class AppConfig {

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

Bean別名

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

@Configuration
public class AppConfig {

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

Bean描述

有時(shí),提供一個(gè)bean的更詳細(xì)的文本描述是有幫助的。當(dāng)bean被公開(可能是通過JMX)用于監(jiān)視目的時(shí),這可能特別有用。

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

@Configuration
public class AppConfig {

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


責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2023-04-28 12:37:59

Spring@Bean使用方式

2023-08-29 09:31:01

Scrapy網(wǎng)頁爬蟲

2020-02-20 08:30:49

OSPF網(wǎng)絡(luò)協(xié)議路由協(xié)議

2019-02-12 11:15:15

Spring設(shè)計(jì)模式Java

2024-04-28 08:20:52

Controller接口URL

2023-02-15 08:12:19

http超時(shí)過濾器

2023-08-30 07:39:16

PawSQL數(shù)據(jù)庫

2021-07-29 06:55:03

Spring@AutowriedbyType注入

2020-09-11 06:39:29

ThreadLocal線程

2024-01-18 07:46:53

HookReact回調(diào)函數(shù)

2020-09-28 11:14:57

線程數(shù)據(jù)語言

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

線程方式管理

2016-03-18 19:03:35

認(rèn)知計(jì)算IBM

2022-11-10 09:00:41

2023-02-01 08:31:36

JavaScript循環(huán)遍歷

2018-07-04 11:02:23

無線傳輸模式

2023-02-13 08:10:40

Gateway網(wǎng)關(guān)Spring
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日韩av手机在线观看| 亚洲韩国日本中文字幕| 五月天在线免费视频| 丰满人妻妇伦又伦精品国产| 久久九九电影| 久久九九热免费视频| 精品无码av一区二区三区| 中老年在线免费视频| 国产精品久久免费看| 99影视tv| 中文字幕观看在线| 1024日韩| 久久国内精品一国内精品| 亚洲色图欧美日韩| 四虎影视成人精品国库在线观看| 亚洲成人免费视| 亚洲国产一区二区三区在线播| 99在线观看精品视频| 久久婷婷影院| 欧美激情xxxx| 午夜激情视频在线播放| 亚洲va久久| 精品福利av导航| www.激情小说.com| 一区二区三区四区日本视频| 一区二区三区中文字幕电影| 日韩一区二区电影在线观看| 99热这里只有精品9| 日韩精品欧美精品| 97在线视频一区| 久草国产在线观看| 忘忧草精品久久久久久久高清| 国产午夜精品理论片a级探花| 日本黄色www| h1515四虎成人| 色综合天天综合狠狠| 欧美一级片免费播放| av免费在线观| 中文字幕一区二区视频| 亚洲精品tv久久久久久久久| 欧美日韩国产综合视频| 99久久99久久免费精品蜜臀| 国产成人一区二区三区免费看| 国产又大又黄的视频| 美腿丝袜亚洲一区| 国产精品久久久久久久久影视| 天堂а√在线中文在线新版 | 亚洲网站视频福利| 无码h肉动漫在线观看| 日韩高清电影免费| 日韩精品极品视频| aaaaaav| 青青视频一区二区| 精品视频在线播放| 内射中出日韩无国产剧情| 欧美一区 二区| 亚洲精品国产精品久久清纯直播| 妖精视频一区二区| 日韩精品欧美大片| 亚洲人成在线一二| 少妇精品无码一区二区免费视频| 精品国产一区二区三区噜噜噜 | 啦啦啦中文在线观看日本| 亚洲精品综合在线| h无码动漫在线观看| 蜜臀av在线| 黄色成人av在线| av观看免费在线| 日韩精品影院| 欧美日本乱大交xxxxx| 天天看片天天操| 视频一区在线| 日韩国产精品亚洲а∨天堂免| 37p粉嫩大胆色噜噜噜| 国产伦一区二区三区| 有码中文亚洲精品| www.毛片com| 亚洲黄色视屏| 国产精品成人观看视频国产奇米| 无码人妻精品一区二区三区不卡 | 国产精品国语对白| 中文字幕人妻一区二区三区视频| 精品在线观看免费| 俄罗斯精品一区二区三区| 亚洲人妻一区二区三区| 国产婷婷精品av在线| 欧美日韩在线高清| 黄网址在线观看| 婷婷激情综合网| 欧美一级特黄a| 在线视频亚洲欧美中文| 亚洲男人天堂九九视频| 波多野结衣喷潮| 一区在线视频观看| 国产精品手机播放| 丰满人妻一区二区三区免费视频| 91麻豆精品秘密| 综合一区中文字幕| 伊人色综合一区二区三区影院视频 | 中文字幕制服丝袜在线| 狠狠躁少妇一区二区三区| 精品视频在线免费看| 污污污www精品国产网站| 日韩激情一区| 51精品在线观看| 国产人妖一区二区三区| 久久久精品日韩欧美| 波多野结衣 作品| 色戒汤唯在线观看| 欧美一卡在线观看| 日本成人免费视频| 一区二区三区国产盗摄 | 免费观看成人网| 国产精品中文字幕制服诱惑| 色偷偷综合社区| 麻豆精品久久久久久久99蜜桃| 精品一区二区久久久| 九色91在线视频| 天使と恶魔の榨精在线播放| 欧美视频日韩视频在线观看| 特级特黄刘亦菲aaa级| 香蕉久久网站| 国产成人精品午夜| 神马一区二区三区| 一区二区三区免费网站| 岛国av在线免费| 啄木系列成人av电影| 国语自产在线不卡| 丁香花免费高清完整在线播放| 国产精品久久三区| 9l视频白拍9色9l视频| 精品国产一区二区三区香蕉沈先生| 久久人人97超碰精品888| 精品国产99久久久久久宅男i| 国产欧美日本一区视频| 97xxxxx| 亚洲另类av| 51久久精品夜色国产麻豆| 日韩在线观看视频一区| 亚洲在线中文字幕| 91人人澡人人爽| 狠狠88综合久久久久综合网| 97se视频在线观看| 污污片在线免费视频| 欧美一区二区大片| 日韩一级片大全| 狠狠久久亚洲欧美| 欧美亚洲视频一区| 3d动漫一区二区三区在线观看| 最近免费中文字幕视频2019| 一级做a爰片久久毛片16| 中文字幕av一区二区三区免费看 | 亚洲一区二区精品| 姑娘第5集在线观看免费好剧| 国产清纯在线一区二区www| 亚洲 中文字幕 日韩 无码| 欧美日韩一区二区三区视频播放| 国产精品一区二区3区| 五月天婷婷在线视频| 7777精品伊人久久久大香线蕉经典版下载| a级黄色免费视频| 精品亚洲porn| 日韩成人手机在线| 任你躁在线精品免费| 国产精品白丝jk喷水视频一区| av免费观看一区二区| 欧美老人xxxx18| 九九热视频精品| 99精品国产91久久久久久| 日韩人妻精品无码一区二区三区| 国产精品日韩精品中文字幕| 国产精品自产拍在线观| 丝袜美女在线观看| 日韩精品在线免费观看| 中文字幕1区2区3区| 一区二区三区精品在线观看| 泷泽萝拉在线播放| 久久精品国产免费看久久精品| 免费成人进口网站| 精品福利一区| 国产精品精品国产| 在线观看av免费| 亚洲精品自产拍| 国产口爆吞精一区二区| 黄色一区二区在线| 国产在视频线精品视频| 成人免费视频网站在线观看| av无码精品一区二区三区| 欧美成熟视频| 日韩福利在线| 超碰地址久久| 日韩美女av在线免费观看| 99视频免费在线观看| 亚洲女人天堂成人av在线| 国产免费黄色录像| 一本一道久久a久久精品| 日本午夜在线观看| 久久久久久久精| 亚洲欧洲国产视频| 美女免费视频一区二区| 日韩欧美不卡在线| 久久久久蜜桃| 日本亚洲自拍| 国产精东传媒成人av电影| 国产欧亚日韩视频| 鲁鲁在线中文| 欧美国产日韩一区二区| av网站无病毒在线| 日韩精品极品在线观看播放免费视频| 91免费视频播放| 色偷偷成人一区二区三区91| 男女免费视频网站| 亚洲欧美日韩一区二区三区在线观看| 久久丫精品国产亚洲av不卡| 国产精品乡下勾搭老头1| 在线免费视频一区| 老牛影视一区二区三区| 国产v片免费观看| 中文字幕日韩欧美精品高清在线| 欧美日本亚洲| 欧美深夜视频| 国产精品一区在线观看| 日韩免费高清视频网站| 91热福利电影| 亚洲一区av| 国产精品爽爽爽爽爽爽在线观看| 性欧美freesex顶级少妇| 欧美激情中文字幕在线| 在线观看中文| 欧美日韩高清在线观看| 韩国av网站在线| 中文字幕视频一区二区在线有码| 欧洲亚洲精品视频| 日韩高清免费观看| 色吊丝在线永久观看最新版本| 亚洲第一页自拍| 国产刺激高潮av| 精品国产一区二区精华| 精品国产无码一区二区| 欧美一级欧美三级在线观看| 91精东传媒理伦片在线观看| 56国语精品自产拍在线观看| 中文字幕在线播出| 欧美日韩国产色站一区二区三区| 日韩乱码一区二区三区| 欧美亚一区二区| 日本熟妇一区二区三区| 色呦呦网站一区| 成人毛片一区二区三区| 欧美性做爰猛烈叫床潮| 日本中文字幕在线观看视频| 在线一区二区观看| 在线免费看av片| 欧美福利视频一区| 精品国产亚洲av麻豆| 欧美一卡在线观看| 嫩草影院一区二区| 亚洲精品美女视频| 日韩三级电影网| 亚洲桃花岛网站| 天堂资源在线中文| 欧美成人在线影院| 黄视频网站在线观看| 国产aaa精品| 成人在线视频区| 国产精品久久精品国产| 香蕉久久精品日日躁夜夜躁| 日韩欧美视频一区二区三区四区| 999久久久精品国产| 污污污污污污www网站免费| 亚洲人成人一区二区三区| 超碰97人人射妻| 激情五月播播久久久精品| 91精品又粗又猛又爽| xnxx国产精品| 欧美激情精品久久久久久免费| 亚洲精品久久久蜜桃| 成人免费区一区二区三区| 欧美撒尿777hd撒尿| 国内老熟妇对白hdxxxx| 亚洲欧洲xxxx| www在线免费观看视频| 欧美一区二区三区免费观看| 亚洲成人高清| 精品无人区一区二区三区| 日本一区二区高清不卡| 国产激情片在线观看| 久久成人亚洲| 黑人巨大猛交丰满少妇| 久久免费精品国产久精品久久久久| av在线免费播放网址| 精品国产精品自拍| 国产精品一二三四五区| 亚洲欧美激情视频| 伊人电影在线观看| 国产精品h在线观看| 成人影院中文字幕| 在线观看亚洲视频啊啊啊啊| 亚洲看片免费| 99久久综合网| 中文子幕无线码一区tr| 午夜毛片在线观看| 日韩免费观看高清完整版| 久蕉在线视频| 久久久久国产一区二区三区| 欧美亚洲黄色| 欧洲一区二区日韩在线视频观看免费 | 亚洲欧美综合图区| 丁香花在线观看完整版电影| 国产日韩综合一区二区性色av| 天堂日韩电影| 精品无码国产一区二区三区av| 久久国产精品99久久人人澡| av小说在线观看| 婷婷中文字幕一区三区| av资源免费看| 久久精品99久久久久久久久| 深夜视频一区二区| 久久亚洲综合网| 伊人久久大香线蕉av超碰演员| 午夜精品免费看| 国产精品青草综合久久久久99| 日日摸天天添天天添破| 亚洲成人av在线播放| 18+激情视频在线| 成人夜晚看av| 91综合久久| 色一情一区二区三区| 国产农村妇女毛片精品久久麻豆 | 亚洲风情在线资源| 国产精品视频福利| 午夜精品电影| 无码人妻一区二区三区在线视频| 国产精品久久免费看| 亚洲一级在线播放| 色小说视频一区| 欧美日韩免费电影| 一区二区精品国产| 久久精品国产精品亚洲精品| 少妇视频在线播放| 欧美三级资源在线| 97人人在线| 国产日韩欧美日韩大片| 99热国内精品| 欧美专区第二页| 一区二区三区久久| 天天干天天操av| 欧美一级大片在线观看| 日韩有码一区| 久久久久久三级| 国产精品国产三级国产专播品爱网| 最新在线中文字幕| 北条麻妃久久精品| 精品一区二区三区视频在线播放| 潘金莲一级淫片aaaaaa播放1| 国产精品一区免费在线观看| 国产性70yerg老太| 精品亚洲一区二区三区| 精品视频一区二区三区四区五区| 神马影院午夜我不卡| 精品亚洲成a人| 国产成人精品av久久| 精品视频在线播放| 亚洲欧美综合久久久久久v动漫| 只有这里有精品| 成人黄色大片在线观看| 国产一级一级国产| 色久欧美在线视频观看| 亚洲**毛片| 69堂免费视频| 中文字幕一区在线| 欧美视频久久久| 国产成人精品优优av| 99久久婷婷国产综合精品电影√| 97免费公开视频| 色婷婷综合久色| 国产黄大片在线观看画质优化| 国产精品区一区二区三在线播放| 久久亚洲国产精品一区二区| 国产67194| 亚洲免费一在线| 精品一区二区三区视频在线播放 | 中文字幕欧美人与畜| 国产成人高清视频| 久久精品国产成人av| 久久精品成人一区二区三区| 人人精品亚洲| 亚洲一级片免费观看| 欧美性极品xxxx做受| 黄色片免费在线观看| 蜜桃狠狠色伊人亚洲综合网站| 精品一区二区三区av| 日韩色图在线观看| 操91在线视频| 欧美日韩国产传媒| 中文成人无字幕乱码精品区| 8x福利精品第一导航| 另类专区亚洲| 久久久亚洲国产精品| 亚洲色图欧洲色图婷婷|