日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

IOC操作Bean管理注解方式(注入属性@Autowired和Qualifier)

發(fā)布時(shí)間:2024/7/23 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOC操作Bean管理注解方式(注入属性@Autowired和Qualifier) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

IOC操作Bean管理注解方式(注入屬性@Autowired、@Qualifier和@Resource)

1.基于注解方式實(shí)現(xiàn) 屬性注入

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

第一步:

第二步:

(2)@Qualifier:根據(jù)屬性名稱進(jìn)行注入

測(cè)試:

(3)@Resource:可以根據(jù)類型注入、也可以根據(jù)名稱注入

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

測(cè)試:


IOC操作Bean管理注解方式(注入屬性@Autowired、@Qualifier和@Resource)

?

1.基于注解方式實(shí)現(xiàn) 屬性注入

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

結(jié)構(gòu)圖:

?

第一步:

把service 和 dao 對(duì)象進(jìn)行創(chuàng)建,在 service 和 dao 類添加 創(chuàng)建對(duì)象注解

UserService類中代碼如下:

package com.lbj.spring5.service;import org.springframework.stereotype.Service;//開啟注解 @Service public class UserService {public void add(){System.out.println("UserService is open");} }

?UserDao接口類代碼如下:

package com.lbj.spring5.dao;public interface UserDao {public void add();}

?UserDaoImpl類中代碼如下:

package com.lbj.spring5.dao;import org.springframework.stereotype.Repository;@Repository public class UserDaoImpl implements UserDao{@Overridepublic void add() {System.out.println("addmethod is open");} }

?

第二步:

在service 注入dao 對(duì)象,在service類添加 dao 類型屬性,在屬性上面使用注解就可以做到注入dao 對(duì)象

注意:不需要添加set方法,因?yàn)樽⒔庖呀?jīng)進(jìn)行封裝

?

?UserService類的代碼如下:

package com.lbj.spring5.service;import com.lbj.spring5.dao.UserDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Controller; import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service;@Service public class UserService {//依舊是set注入,定義dao類型屬性,但是不需要添加set方法//添加注入屬性 注解 @Autowiredprivate UserDao userDao;public void add(){System.out.println("UserService is open");//調(diào)用效果userDao.add();} }

測(cè)試:

?

?

(2)@Qualifier:根據(jù)屬性名稱進(jìn)行注入

這個(gè)@Qualifier注解的使用,需要和上面的@Autowired一起使用

原因:因?yàn)橹挥?根據(jù)唯一的名稱才可以準(zhǔn)確找到屬于哪一個(gè)類(畢竟一個(gè)接口一般是有多個(gè)實(shí)現(xiàn)類的)

演示:?

?

?

測(cè)試:

?

(3)@Resource:可以根據(jù)類型注入、也可以根據(jù)名稱注入

根據(jù)類型注入:UserService類中代碼如下:

package com.lbj.spring5.service;import com.lbj.spring5.dao.UserDao; import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service public class UserService {@Resource //根據(jù)類型進(jìn)行注入private UserDao userDao;public void add(){System.out.println("UserService is open");//調(diào)用效果userDao.add();} }

?

根據(jù)名稱注入:?UserService類中代碼如下:

package com.lbj.spring5.service;import com.lbj.spring5.dao.UserDao; import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service public class UserService {@Resource(name = "userDaoImpl01") //根據(jù)名稱進(jìn)行注入private UserDao userDao;public void add(){System.out.println("UserService is open");//調(diào)用效果userDao.add();} }

?

需要注意:@Resource 的 引入的包是在java的擴(kuò)展包 javax中,本身不是Spring里面的,因此官方不建議用這個(gè)注解

?

?

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

package com.lbj.spring5.service;import com.lbj.spring5.dao.UserDao; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service;import javax.annotation.Resource;@Service public class UserService {@Value(value = "abc")private String name;public void add(){System.out.println("UserService is open"+name);//調(diào)用效果userDao.add();} }

測(cè)試:

?

注意:(1)(2)(3)都是根據(jù)對(duì)象進(jìn)行屬性注入,(4)是根據(jù)普通類型屬性注入

?

?

總結(jié)

以上是生活随笔為你收集整理的IOC操作Bean管理注解方式(注入属性@Autowired和Qualifier)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。