無責任的爛筆頭

          Concentrate & enjoy!
          posts - 3, comments - 15, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          AnnotationFormatError when using Spring 3.0 & JavaConfig

          Posted on 2010-03-18 01:11 BZ 閱讀(1590) 評論(0)  編輯  收藏 所屬分類: Spring

              Spring 3.0M3及其以后的版本包含了JavaConfig項目提供的大部分功能. 如果你的程序遭遇如下異常:

          Exception in thread "main" java.lang.annotation.AnnotationFormatError: Invalid default: public abstract org.springframework.beans.factory.annotation.Autowire

           org.springframework.config.java.annotation.Configuration.defaultAutowire()


              這很可能是因為你在Classpath中添加了JavaConfig項目release出來的包(比如org.springframework.config.java-1.0.0.M4.jar), 而在程序中使用JavaConfigApplicationContext類。查看org.springframework.config.java-1.0.0.M4.jar包的source code, 你會發現org.springframework.config.java.annotation.Configuration類的defaultAutowire的定義如下:

          Autowire defaultAutowire() default Autowire.INHERITED;

              而查看org.springframework.beans.factory.annotation.Autowire枚舉類,你會發現INHERITED根本就沒有定義(只有NO, BY_NAMEBY_TYPE三種)。這就難怪會報錯了。

           

              事實上,由于Spring 3.0M3及其以后的版本包含了JavaConfig項目提供的大部分功能,你無需為應用再添加JavaConfig的包。@Configuration, @Bean等都已經被整合到了org.springframework.context.annotation, 從文件來看就是org.springframework.context.jar包。下圖展示了一個可運行項目的Classpath配置:


             由于沒有了JavaConfig項目release的包, JavaConfigApplicationContext類也就無法找到了,你需要將它替換成org.springframework.context.annotation.AnnotationConfigApplicationContext, 例如:

          public static void main(String[] args) {

          ApplicationContext context = new

          AnnotationConfigApplicationContext(ApplicationConfig.class);

          String x = context.getBean("x", String.class);

          System.out.println("Got x: " + x);

          }


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 肇州县| 平塘县| 章丘市| 健康| 讷河市| 延安市| 平远县| 鲜城| 大悟县| 庆阳市| 通榆县| 湾仔区| 万全县| 洛宁县| 昌宁县| 卓尼县| 玉树县| 静乐县| 西青区| 东丽区| 峨山| 兰州市| 信宜市| 崇仁县| 五原县| 丽江市| 遂平县| 海宁市| 浪卡子县| 望谟县| 永春县| 古浪县| 淮滨县| 专栏| 宜春市| 青海省| 林甸县| 长葛市| 门头沟区| 凤台县| 公安县|