激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - 深入理解java的spring-ioc的使用

深入理解java的spring-ioc的使用

2021-07-21 11:46張占嶺(倉(cāng)儲(chǔ)大叔,Lind) Java教程

這篇文章主要介紹了java的spring-ioc的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

spring-ioc的使用

ioc容器在很多框架里都在使用,而在spring里它被應(yīng)用的最大廣泛,在框架層面上,很多功能都使用了ioc技術(shù),下面我們看一下ioc的使用方法。

  1. 把服務(wù)注冊(cè)到ioc容器
  2. 使用屬性注入反射對(duì)應(yīng)類型的實(shí)例
  3. 多態(tài)情況下,使用名稱反射類型的實(shí)例

把服務(wù)注冊(cè)到ioc容器

@bean注冊(cè)組件
使用@bean注解進(jìn)行類型的注冊(cè),默認(rèn)你的ioc容器里類型為bean的返回值,名稱為bean所有的方法名,與你的包名稱沒(méi)有直接關(guān)系,如果你的接口有多種實(shí)現(xiàn),在注冊(cè)時(shí)可以使用@bean("lind")這種方式來(lái)聲明。

@component,@configuration,service,repository注冊(cè)組件

這幾個(gè)注解都是在類上面聲明的,而@bean是聲明在方法上的,這一點(diǎn)要注意,這幾個(gè)注解一般是指對(duì)一個(gè)接口的實(shí)現(xiàn),在實(shí)現(xiàn)類上加這些注解,例如,一個(gè)數(shù)據(jù)倉(cāng)儲(chǔ)接口userrepository,它可以有多種數(shù)據(jù)持久化的方式,如sqluserrepositoryimpl和mongouserrepositoryimpl,那么在注冊(cè)時(shí)你需要為他們起一個(gè)別名,如@repository("sql-userrepositoryimpl) qluserrepositoryimpl,默認(rèn)的名稱是類名,但注意類名首字母為小寫(xiě)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public interface emaillogservice {
 void send(string email, string message);
}
 
@component()
public class emaillogservicehttpimpl implements emaillogservice {
 private static final logger logger = loggerfactory.getlogger(emaillogservicehttpimpl.class);
 
 @override
 public void send(string email, string message) {
 assert.notnull(email, "email must not be null!");
 logger.info("send email:{},message:{}", email, message);
 }
}
@component("email-socket")
public class emaillogservicesocketimpl implements emaillogservice {
 private static final logger logger = loggerfactory.getlogger(emaillogservicesocketimpl.class);
 
 @override
 public void send(string email, string message) {
 assert.notnull(email, "email must not be null!");
 logger.info("send email2:{},message:{}", email, message);
 }
}
// 看一下調(diào)用時(shí)的測(cè)試代碼
 @resource(name = "email-socket")
 emaillogservice socketemail;
 @autowired
 @qualifier( "emaillogservicehttpimpl")
 emaillogservice httpemail;
 
 @test
 public void testioc2() {
 socketemail.send("ok", "ok");
 }
 
 
 @test
 public void testioc1() {
 httpemail.send("ok", "ok");
 }

在程序中使用bean對(duì)象

1.使用resource裝配bean對(duì)象
在通過(guò)別名調(diào)用bean時(shí),你可以使用@resource注解來(lái)裝配對(duì)象

2.使用@autowired裝配bean對(duì)象
也可以使用 @autowired
@qualifier( "emaillogservicehttpimpl")兩個(gè)注解去實(shí)現(xiàn)程序中的多態(tài)

使用場(chǎng)景

在我們有些相同行為而實(shí)現(xiàn)方式不同的場(chǎng)景中,如版本1接口與版本2接口,在get方法實(shí)現(xiàn)有所不同,而這
兩個(gè)版本都要同時(shí)保留,這時(shí)我們需要遵守開(kāi)閉原則,擴(kuò)展一個(gè)新的接口,而在業(yè)務(wù)上對(duì)代碼進(jìn)行重構(gòu),
提取兩個(gè)版本相同的方法到基類,自己維護(hù)各自獨(dú)有的方法,在為它們的bean起個(gè)名字,在裝配時(shí),通過(guò)
bean的名稱進(jìn)行裝配即可。

寫(xiě)個(gè)偽代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class api_version1(){
@autowired
@qualifier("print-version1")
printservice printservice;
}
 
class api_version2(){
@autowired
@qualifier("print-version2")
printservice printservice;
}
 
class baseprintservice{}
 
interface printservice{}
 
@service("print-version1")
class printserviceimplversion1 extends baseprintservice implements printservice{}
 
@service("print-version2")
class printserviceimplversion2 extends baseprintservice implements printservice{}

以上所述是小編給大家介紹的java的spring-ioc的使用詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!

原文鏈接:https://www.cnblogs.com/lori/p/10512402.html

延伸 · 閱讀

精彩推薦
978
主站蜘蛛池模板: 日本成人在线免费 | 免费国产在线观看 | 亚洲一区二区三区高清 | 欧美另类视频在线 | 亚洲视频在线观看免费视频 | 福利免费在线观看 | 国产午夜精品久久久久久免费视 | 国产成人综合在线观看 | 成年人毛片视频 | 国产精品免费av一区二区三区 | 日本中文字幕网址 | 国产一区二区三区影视 | 久草在线资源观看 | 中文字幕精品一二三四五六七八 | 黄色网址免费进入 | 精品成人免费一区二区在线播放 | 羞羞视频免费入口网站 | 香蕉久草视频 | 婷婷久久综合九色综合色多多蜜臀 | 曰韩黄色片 | av成人在线观看 | 中文字幕在线免费看 | 99精品视频免费 | 56av国产精品久久久久久久 | 亚洲欧美成aⅴ人在线观看 免费看欧美黑人毛片 | av在线免费观看播放 | 精品欧美一区二区精品久久 | av手机在线免费播放 | 久久久99精品视频 | 毛片118极品美女写真 | 欧美亚洲啪啪 | 欧美高清在线精品一区二区不卡 | 麻豆视频在线观看免费网站 | 刘亦菲一区二区三区免费看 | 草草视频免费 | 在线a亚洲视频播放在线观看 | 今井夏帆av一区二区 | 中文字幕精品在线视频 | 91中文字幕在线观看 | 草久在线| 欧美精品一区二区三区久久久 |