無責(zé)任的爛筆頭

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

          AnnotationFormatError when using Spring 3.0 & JavaConfig

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

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

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


              這很可能是因?yàn)槟阍?span lang="EN-US">Classpath中添加了JavaConfig項(xiàng)目release出來的包(比如org.springframework.config.java-1.0.0.M4.jar), 而在程序中使用JavaConfigApplicationContext類。查看org.springframework.config.java-1.0.0.M4.jar包的source code, 你會(huì)發(fā)現(xiàn)org.springframework.config.java.annotation.Configuration類的defaultAutowire的定義如下:

          Autowire defaultAutowire() default Autowire.INHERITED;

              而查看org.springframework.beans.factory.annotation.Autowire枚舉類,你會(huì)發(fā)現(xiàn)INHERITED根本就沒有定義(只有NO, BY_NAMEBY_TYPE三種)。這就難怪會(huì)報(bào)錯(cuò)了。

           

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


             由于沒有了JavaConfig項(xiàng)目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);

          }


          只有注冊用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 徐汇区| 香河县| 铜鼓县| 望都县| 万山特区| 汝州市| 龙江县| 芜湖市| 夹江县| 榕江县| 陆良县| 彩票| 彭泽县| 固始县| 江达县| 平昌县| 宁远县| 武胜县| 万载县| 抚顺县| 昌图县| 文山县| 重庆市| 镇康县| 瑞金市| 双江| 双牌县| 鄂托克前旗| 清流县| 金堂县| 沙洋县| 察隅县| 资溪县| 铜川市| 右玉县| 凌海市| 胶州市| 兖州市| 阳朔县| 屏边| 清水县|