Spring IOC容器Bean管理——基于注解方式

1笼恰、什么是注解

(1)注解是代碼特殊標(biāo)記仑最,格式:@注解名稱(屬性名稱=屬性值, 屬性名稱=屬性值…)

(2)使用注解辽话,注解作用在類上面肄鸽,方法上面,屬性上面

(3)使用注解目的:簡化 xml 配置


2、Spring 針對 Bean 管理中創(chuàng)建對象提供注解

下面四個注解功能是一樣的粤蝎,都可以用來創(chuàng)建 bean 實(shí)例

(1)@Component

(2)@Service

(3)@Controller

(4)@Repository


3外邓、基于注解方式實(shí)現(xiàn)對象創(chuàng)建

第一步 引入依賴 (引入spring-aop jar包)

第二步 開啟組件掃描

<!--開啟組件掃描
1 如果掃描多個包,多個包使用逗號隔開
2 掃描包上層目錄
-->
<context:component-scan base-package="com.atguigu"></context:component-scan>

第三步 創(chuàng)建類逮诲,在類上面添加創(chuàng)建對象注解

//在注解里面 value 屬性值可以省略不寫,
//默認(rèn)值是類名稱幽告,首字母小寫
//UserService -- userService
@Component(value = "userService") //注解等同于XML配置文件:<bean id="userService" class=".."/>
public class UserService {
????public void add() {
????System.out.println("service add.......");
????}
}


4梅鹦、開啟組件掃描細(xì)節(jié)配置

<!--示例 1
use-default-filters="false" 表示現(xiàn)在不使用默認(rèn) filter,自己配置 filter
context:include-filter 冗锁,設(shè)置掃描哪些內(nèi)容
-->
<context:component-scan base-package="com.atguigu" use-defaultfilters="false">
????<context:include-filter type="annotation"

expression="org.springframework.stereotype.Controller"/><!--代表只掃描Controller注解的類-->
</context:component-scan>
<!--示例 2
????下面配置掃描包所有內(nèi)容
? ? context:exclude-filter: 設(shè)置哪些內(nèi)容不進(jìn)行掃描
-->
<context:component-scan base-package="com.atguigu">
????<context:exclude-filter type="annotation"

expression="org.springframework.stereotype.Controller"/><!--表示Controller注解的類之外一切都進(jìn)行掃描-->
</context:component-scan>


5齐唆、基于注解方式實(shí)現(xiàn)屬性注入

(1)@Autowired:根據(jù)屬性類型進(jìn)行自動裝配

第一步 把 service 和 dao 對象創(chuàng)建,在 service 和 dao 類添加創(chuàng)建對象注解

第二步 在 service 注入 dao 對象冻河,在 service 類添加 dao 類型屬性箍邮,在屬性上面使用注解

@Service
public class UserService {
????//定義 dao 類型屬性
????//不需要添加 set 方法
????//添加注入屬性注解
????@Autowired
????private UserDao userDao;
????public void add() {
????System.out.println("service add.......");
????userDao.add();
????}
}

//Dao實(shí)現(xiàn)類
@Repository
//@Repository(value = "userDaoImpl1")
public class UserDaoImpl implements UserDao {
? ? @Override
? ? public void add() {
? ? ? ? System.out.println("dao add.....");
? ? }
}

(2)@Qualifier:根據(jù)名稱進(jìn)行注入,這個@Qualifier 注解的使用叨叙,和上面@Autowired 一起使用

//定義 dao 類型屬性
//不需要添加 set 方法
//添加注入屬性注解
@Autowired //根據(jù)類型進(jìn)行注入
//根據(jù)名稱進(jìn)行注入(目的在于區(qū)別同一接口下有多個實(shí)現(xiàn)類锭弊,根據(jù)類型就無法選擇,從而出錯Kち病)
@Qualifier(value = "userDaoImpl1")
private UserDao userDao;

(3)@Resource:可以根據(jù)類型注入廷蓉,也可以根據(jù)名稱注入(它屬于javax包下的注解,不推薦使用!)

//@Resource //根據(jù)類型進(jìn)行注入
@Resource(name = "userDaoImpl1") //根據(jù)名稱進(jìn)行注入
private UserDao userDao;

(4)@Value:注入普通類型屬性

@Value(value = "abc")
private String name


6桃犬、完全注解開發(fā)

(1)創(chuàng)建配置類刹悴,替代 xml 配置文件

@Configuration //作為配置類,替代 xml 配置文件
@ComponentScan(basePackages = {"com.atguigu"})
public class SpringConfig {

}

(2)編寫測試類

@Test
public void testService2() {
//加載配置類
ApplicationContext context
????= new AnnotationConfigApplicationContext(SpringConfig.class);
UserService userService = context.getBean("userService",UserService.class);
System.out.println(userService);
userService.add();
}


版權(quán)聲明:本文為CSDN博主「來點(diǎn)淦貨」的原創(chuàng)文章攒暇,遵循CC 4.0 BY-SA版權(quán)協(xié)議土匀,轉(zhuǎn)載請附上原文出處鏈接及本聲明。原文鏈接:https://blog.csdn.net/weixin_45496190/article/details/107071204

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末形用,一起剝皮案震驚了整個濱河市就轧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌田度,老刑警劉巖妒御,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異镇饺,居然都是意外死亡乎莉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進(jìn)店門奸笤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惋啃,“玉大人,你說我怎么就攤上這事监右”呙穑” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵健盒,是天一觀的道長绒瘦。 經(jīng)常有香客問我,道長扣癣,這世上最難降的妖魔是什么椭坚? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮搏色,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘券册。我一直安慰自己频轿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布烁焙。 她就那樣靜靜地躺著航邢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骄蝇。 梳的紋絲不亂的頭發(fā)上膳殷,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天,我揣著相機(jī)與錄音九火,去河邊找鬼赚窃。 笑死册招,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的勒极。 我是一名探鬼主播是掰,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼辱匿!你這毒婦竟也來了键痛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤匾七,失蹤者是張志新(化名)和其女友劉穎絮短,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昨忆,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丁频,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了扔嵌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片限府。...
    茶點(diǎn)故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖痢缎,靈堂內(nèi)的尸體忽然破棺而出胁勺,到底是詐尸還是另有隱情,我是刑警寧澤独旷,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布署穗,位于F島的核電站,受9級特大地震影響嵌洼,放射性物質(zhì)發(fā)生泄漏案疲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一麻养、第九天 我趴在偏房一處隱蔽的房頂上張望褐啡。 院中可真熱鬧,春花似錦鳖昌、人聲如沸备畦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽懂盐。三九已至,卻和暖如春糕档,著一層夾襖步出監(jiān)牢的瞬間莉恼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俐银,地道東北人尿背。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像悉患,于是被迫代替她去往敵國和親残家。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容