日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

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

目錄

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

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

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

第一步:

第二步:

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

測試:

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

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

測試:


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

?

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

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

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

?

第一步:

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

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 對象,在service類添加 dao 類型屬性,在屬性上面使用注解就可以做到注入dao 對象

注意:不需要添加set方法,因為注解已經(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();} }

測試:

?

?

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

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

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

演示:?

?

?

測試:

?

(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里面的,因此官方不建議用這個注解

?

?

(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();} }

測試:

?

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

?

?

總結(jié)

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

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