最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

@Inject注解和@Named注解注入失敗

 更新時間:2026年05月21日 16:51:31   作者:成為大佬先禿頭  
在學習Spring框架時,按照官網介紹的JSR-333標準注釋(依賴注入)操作,但運行時找不到bean并報錯,后發(fā)現是pom文件中版本不對,將版本降低后,問題解決,總結了個人經驗,原來是不同版本的包名不同導致問題發(fā)生

問題發(fā)現

在學習spring框架的時候,官方介紹Spring支持JSR-330標準注釋(依賴注入)。然后按照官網的方式去操作。

pom文件:

        <dependency>
            <groupId>jakarta.inject</groupId>
            <artifactId>jakarta.inject-api</artifactId>
            <version>2.0.1</version>
        </dependency>

示例代碼如下:

@Named
public class B{}
@Named
public class A{

    @Inject
    private B b;

    public B getB() { return b; }
    @Inject
    public void setB(B b) { this.b = b; }

    public static void main(String[] args) {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext("com.example");
        A bean = applicationContext.getBean(A.class);
        System.out.println(bean.b);
        /** Output:
         *  No qualifying bean of type 'com.example.A' available
         */
    }
}

運行直接找不到bean,報錯。

問題解決

后面發(fā)現官網介紹的版本好像不一樣,難道是這個原因(不是吧!?。缓蟀裵om文件版本換低點。

        <dependency>
            <groupId>jakarta.inject</groupId>
            <artifactId>jakarta.inject-api</artifactId>
            <version>1.0</version>
        </dependency>

項目都報紅了,發(fā)現原先的包名報錯了,于是重新引入才發(fā)現問題。

  • 2.0.1版本的包名對應jakarta.inject.Named;
  • 1.0版本的包名對應javax.inject.Inject;

至此問題解決,運行一下:

@Named
public class B{}
@Named
public class A{
    @Inject
    private B b;

    public static void main(String[] args) {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext("com.example");
        A bean = applicationContext.getBean(A.class);
        System.out.println(bean.b);
        /** Output:
         *  com.example.B@9225652
         */
    }
}

問題解決。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java網絡編程基礎用法詳解

    Java網絡編程基礎用法詳解

    網絡編程是指編寫運行在多個設備(計算機)的程序,這些設備都通過網絡連接起來,本文將帶大家詳細了解Java的網絡編程,文中有相關的代碼示例,需要的朋友可以參考下
    2023-05-05
  • 解讀JVM的生命周期是怎么樣的

    解讀JVM的生命周期是怎么樣的

    JVM的生命周期包括啟動、運行和終止三個階段,啟動階段包括創(chuàng)建JVM實例、加載和初始化核心類庫、加載main方法所在的類和初始化類,運行階段包括執(zhí)行main方法、類加載、字節(jié)碼執(zhí)行、內存管理、線程管理和異常處理,終止階段包括正常終止、異常終止和外部終止
    2025-03-03
  • 詳解Java JDK動態(tài)代理

    詳解Java JDK動態(tài)代理

    這篇文章主要介紹了Java JDK動態(tài)代理的相關資料,幫助大家更好的理解和學習Java 代理的有關知識,感興趣的朋友可以了解下
    2020-08-08
  • SpringMVC + jquery.uploadify實現上傳文件功能

    SpringMVC + jquery.uploadify實現上傳文件功能

    文件上傳是很多項目都會使用到的功能,SpringMVC當然也提供了這個功能。不過小編不建議在項目中通過form表單來提交文件上傳,這樣做的局限性很大。下面這篇文章主要介紹了利用SpringMVC + jquery.uploadify實現上傳文件功能的相關資料,需要的朋友可以參考下。
    2017-06-06
  • SpringBoot實現不同接口指定上傳文件大小的具體步驟

    SpringBoot實現不同接口指定上傳文件大小的具體步驟

    這篇文章主要介紹了在Spring Boot中通過自定義注解、AOP攔截和配置文件實現不同接口上傳文件大小限制的方法,強調需設置全局閾值遠大于接口自定義值,確保驗證邏輯正確執(zhí)行,需要的朋友可以參考下
    2025-08-08
  • Java中的OpenJDK使用原理

    Java中的OpenJDK使用原理

    這篇文章主要介紹了Java中的OpenJDK使用原理,OpenJDK是Java的開發(fā)工具包,關于Java為什么要使用它文章作簡單介紹,感興趣的朋友可以參考一下
    2022-06-06
  • SpringBoot中如何使用Assert進行斷言校驗

    SpringBoot中如何使用Assert進行斷言校驗

    Java?提供了內置的?assert?機制,而?Spring?框架也提供了更強大的?Assert?工具類來幫助開發(fā)者進行參數校驗和狀態(tài)檢查,下面我們就來看看SpringBoot中如何使用Assert進行斷言校驗吧
    2025-07-07
  • 在IDEA中集成maven詳細流程圖示例

    在IDEA中集成maven詳細流程圖示例

    最近利用兩天時間學習了MyBatis以及maven,避免經典的學過就忘記,我打算做出點總結以便日后復習,當然如果能幫到需要的人也是極好的,需要的朋友可以參考下
    2021-06-06
  • Java NumberFormat格式化float類型的bug

    Java NumberFormat格式化float類型的bug

    今天小編就為大家分享一篇關于Java NumberFormat格式化float類型的bug,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • jenkins自動構建SpringCloud流程

    jenkins自動構建SpringCloud流程

    文章介紹了如何使用Jenkins和docker-compose自動部署SpringCloud和Vue項目,首先,下載并安裝Jenkins,并配置Jenkins以自動啟動,然后,配置GitLab插件和NodeJS插件,以便可以從GitLab倉庫中獲取代碼并構建,接下來,創(chuàng)建一個Jenkins任務來構建Vue項目
    2025-02-02

最新評論

大名县| 都匀市| 武隆县| 青河县| 福贡县| 巴林右旗| 乌什县| 苍山县| 乐安县| 宁蒗| 辽阳市| 武平县| 鄂托克旗| 三都| 惠来县| 黄石市| 东港市| 石河子市| 历史| 墨竹工卡县| 玛曲县| 东乌珠穆沁旗| 上饶市| 唐海县| 松滋市| 巴楚县| 临颍县| 孟连| 德阳市| 曲水县| 宣城市| 资阳市| 亚东县| 大厂| 安新县| 仙桃市| 合江县| 峨眉山市| 清水河县| 康乐县| 冀州市|