亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳細易懂帶你了解Spring中的注解

 更新時間:2023年08月17日 10:34:45   作者:SunCodingづ  
這篇文章主要介紹了詳細易懂帶你了解Spring中的注解,Spring的一個核心是IOC,是將Bean初始化加載到容器中,Bean是如何加載到容器的,可以使用Spring注解方式或者Spring XML配置方式,需要的朋友可以參考下

Spring注解

Spring的一個核心是IOC,是將Bean初始化加載到容器中,Bean是如何加載到容器的,可以使用Spring注解方式或者Spring XML配置方式。

Spring注解方式減少了配置文件內容,更加便于管理,并且使用注解可以大大提高了開發(fā)效率!

注解本身是沒有功能的,和xml一樣,注解和xml都是一種元數據,元數據即解釋數據的數據,也就是所謂的配置。

聲明bean的注解

  • @Component: 普通的注解
  • @Service :業(yè)務邏輯層以及Service層
  • @Controller: 外部層
  • @Repository :dao層即持久層

注:@Controller、@Service、@Repository都可以稱為@Component

注入bean的注解

@Autowired (根據屬性類型自動裝配)

當在將一個類上標注@Service或者@Controller或@Component或@Repository注解之后,spring的組件掃描就會自動發(fā)現它,并且會將其初始化為spring應用上下文中的bean。

當需要使用這個bean的時候,加上==@Autowired==注解的時候,這個bean就會被創(chuàng)建。而且初始化是根據無參構造函數。

  • @Autowired可以標注在屬性上、方法上和構造器上,來完成自動裝配。
  • 默認是根據屬性類型,spring自動將匹配到的屬性值進行注入

當@Autowired標注的屬性是接口時,其實注入的是這個接口的實現類, 如果這個接口有多個實現類,只使用@Autowired就會報錯,因為它默認是根據類型找,然后就會找到多個實現類bean,所有就不知道要注入哪個。然后它就會根據屬性名去找。所以如果有多個實現類可以配合@Qualifier(value=“類名”)來使用

    @Autowired
    private UserServiceImpl userService;
    @GetMapping("{id}")
    public Result<List<OrderDTO>> selectById(@PathVariable Integer id) {
        List<OrderDTO> list = userService.selectById(id);
        return Result.ok(list);
    }

@Resource (可以根據類型注入,也可以根據名稱注入)

@Resource有兩個重要屬性,分別是name和type

spring將name屬性解析為bean的名字,而type屬性則被解析為bean的類型。

所以如果使用name屬性,則使用byName的自動注入策略,如果使用type屬性則使用byType的自動注入策略。

如果都沒有指定,則通過反射機制使用byName自動注入策略。

@Resource(name="gender")
    private String gender;
@Resource(name="age")
    private String age;
<bean name="gender" class="java.lang.String"> 
    <constructor-arg value="${oos.gender}"/> 
</bean> 
<bean name="age" class="java.lang.String"> 
    <constructor-arg value="${oos.age}"/> 
</bean>

@Resource和@Autowired注解都是實現依賴注入的。

只是@AutoWried按by type自動注入,而@Resource默認按byName自動注入。

@Qualifier (根據屬性名稱進行注入)

@Qualifier的使用要和上面的@Autowired一起使用,讓系統(tǒng)知道了我們具體要引入哪個實現類,當有多個實現類的時候,我們可以使用此方法

    @Autowired
    @Qualifier(value = "userDaoImpl")
    private UserDao userDao;

@Value 注入普通類型的注入

通過@Value注解指定系統(tǒng)屬性的名稱susan.test.userName,該名稱需要使用${}包起來。

@Value注解中指定的系統(tǒng)屬性名,必須跟配置文件中的相同。

@Service
public class UserService {
    @Value("${test.userName}")
    private String userName;
    public String test() {
        System.out.println(userName);
        return userName;
    }
}

而配置文件中配置的系統(tǒng)屬性名是:

test.user-name=張三

最后獲取數據時,會發(fā)現userName竟然可能會出現亂碼:

手動將ISO-8859-1格式的屬性值,轉換成UTF-8格式。

到此這篇關于詳細易懂帶你了解Spring中的注解的文章就介紹到這了,更多相關Spring中的注解內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java中的RestTemplate使用詳解

    Java中的RestTemplate使用詳解

    這篇文章主要介紹了Java中的RestTemplate使用詳解,Spring內置了RestTemplate作為Http請求的工具類,簡化了很多操作,雖然Spring5推出了WebClient,但是整體感覺還是RestTemplate用起來更簡單方便一些,需要的朋友可以參考下
    2023-10-10
  • Java 線程池原理深入分析

    Java 線程池原理深入分析

    這篇文章主要介紹了Java 線程池原理深入分析的相關資料,需要的朋友可以參考下
    2017-02-02
  • Spring Security跳轉頁面失敗問題解決

    Spring Security跳轉頁面失敗問題解決

    這篇文章主要介紹了Spring Security跳轉頁面失敗問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Springboot傳輸數據時日期格式化問題

    Springboot傳輸數據時日期格式化問題

    這篇文章主要介紹了Springboot傳輸數據時日期格式化問題,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Springboot mybatisplus如何解決分頁組件IPage失效問題

    Springboot mybatisplus如何解決分頁組件IPage失效問題

    這篇文章主要介紹了Springboot mybatisplus如何解決分頁組件IPage失效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java事件處理機制和適配器全面解析

    Java事件處理機制和適配器全面解析

    這篇文章主要介紹了Java事件處理機制和適配器全面解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring輕松解決循環(huán)依賴

    Spring輕松解決循環(huán)依賴

    Spring的解決循環(huán)依賴是有前置條件的,要解決循環(huán)依賴我們首先要了解Spring Bean對象的創(chuàng)建過程和依賴注入的方式。依賴注入方式,我之前的博客有所分享,大家可以在看本篇文章之前進行一下小小的回顧
    2023-04-04
  • 聊聊spring繼承的問題

    聊聊spring繼承的問題

    這篇文章主要介紹了spring繼承的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • PowerJob的MapProcessor工作流程源碼解讀

    PowerJob的MapProcessor工作流程源碼解讀

    這篇文章主要為大家介紹了PowerJob的MapProcessor工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Java找出兩個大數據量List集合中的不同元素的方法總結

    Java找出兩個大數據量List集合中的不同元素的方法總結

    本文將帶大家了解如何快速的找出兩個相似度非常高的List集合里的不同元素。主要通過Java API、List集合雙層遍歷比較不同、借助Map集合查找三種方式,需要的可以參考一下
    2022-10-10

最新評論