我一直在試圖得到一個示例@Configuration構建工作(在groovy),所以我可以觸發依賴注入彈出容器,但我得到的是關於-javaagent的錯誤我似乎無法修復爲什麼我不能得到彈簧加載時間編織工作
我有這樣
@Configuration @EnableSpringConfigured // should turn on AnnotationBeanConfigurerAspect @EnableLoadTimeWeaving (aspectjWeaving=AspectJWeaving.ENABLED) // switch on for this context class BeanConfig {
一個beanConfig類,那麼樣品類,我將呼籲新的嘗試,並獲得注入oustide Spring容器中,diSource豆哪裏在上述配置類中聲明
` @Configurable(自動裝配= Autowire.BY_TYPE,dependencyCheck = TRUE) 類ExtDI { @Autowired DISource diSource
def say() {
println "ExtDI : diSource set as " + diSource.name
}
}
`
在我取樣類我把這種嘗試和觸發注射
` ... 靜態無效的主要(字串[] args){ AnnotationConfigApplicationContext CTX =新AnnotationCo nfigApplicationContext(/ BeanConfig.class /) ctx.scan( 「com.softwood」) ctx.refresh() ....
//trigger LTW injection
ExtDI ext = new ExtDI()
ext.say()
`
類路徑我有上aspectjeaver-1.6.10.jar,aspectjrt-1.6.10.jar,春天-XXX-3.1.4.jars等 我的繼承人的gradle depdency上市
dependencies { compile 'org.codehaus.groovy:groovy-all:2.1.7' compile group: 'commons-collections', name: 'commons-collections', version: '3.2' testCompile group: 'junit', name: 'junit', version: '4.+' compile "org.springframework:spring-core:${spring_version}" compile "org.springframework:spring-beans:${spring_version}" compile "org.springframework:spring-context:${spring_version}" compile "org.springframework:spring-aspects:${spring_version}" compile "org.springframework:spring-aop:${spring_version}" compile "org.springframework:spring-instrument:${spring_version}" compile "org.aspectj:aspectjrt:1.6.10" compile "org.aspectj:aspectjweaver:1.6.10" compile "cglib:cglib:2.2" }
在虛擬機ARGS Eclipse項目運行時,我有 -javaagent:C:/Users/802518659/aspectjweaver-1.6.10.jar
,並試圖用相同的彈簧儀器3.1.4.jar和有同樣的問題。
當我運行該項目,我得到這個錯誤
`
Oct 19, 2013 4:02:40 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.spring[email protected]492ff1: startup date [Sat Oct 19 16:02:40 BST 2013]; root of context hierarchy
Oct 19, 2013 4:02:40 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.s[email protected]11bedb0: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,beanConfig,willsBean,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,org.springframework.context.annotation.aspectj.SpringConfiguredConfiguration,org.springframework.context.config.internalBeanConfigurerAspect,org.springframework.context.annotation.LoadTimeWeavingConfiguration,loadTimeWeaver,publicBean,privateBean,publicBeanWithDI,myDISource,diTarget]; root of factory hierarchy
Oct 19, 2013 4:02:40 PM org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons
INFO: Destroying singletons in org.s[email protected]11bedb0: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,beanConfig,willsBean,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,org.springframework.context.annotation.aspectj.SpringConfiguredConfiguration,org.springframework.context.config.internalBeanConfigurerAspect,org.springframework.context.annotation.LoadTimeWeavingConfiguration,loadTimeWeaver,publicBean,privateBean,publicBeanWithDI,myDISource,diTarget]; root of factory hierarchy
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loadTimeWeaver' defined in class path resource [org/springframework/context/annotation/LoadTimeWeavingConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.springframework.instrument.classloading.LoadTimeWeaver org.springframework.context.annotation.LoadTimeWeavingConfiguration.loadTimeWeaver()] threw exception; nested exception is java.lang.IllegalStateException: ClassLoader [sun.misc.Launcher$AppClassLoader] does NOT provide an 'addTransformer(ClassFileTransformer)' method. Specify a custom LoadTimeWeaver or start your Java virtual machine with Spring's agent: -javaagent:org.springframework.instrument.jar
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:581)
...
`
它告訴我,我的應用程序不能樂器Java類加載器 - 儘管我啓動用-javaagent:spring-instrument-xxx或aspectjweaver。罐子 - 都失敗
所以我在做什麼錯了 - 這是真正開始打擾我 - 我可以在上下文中得到普通注射工作(沒有LTW),但真的很想得到這個注入容器外工作
我在做什麼錯