Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 为什么我不能在春季上班_Spring_Groovy_Spring Annotations_Load Time Weaving - Fatal编程技术网

Spring 为什么我不能在春季上班

Spring 为什么我不能在春季上班,spring,groovy,spring-annotations,load-time-weaving,Spring,Groovy,Spring Annotations,Load Time Weaving,我一直在尝试让一个@Configuration构建示例(在groovy中)工作,这样我就可以用spring容器触发依赖项注入,但我得到的只是关于-javaagent的错误,我似乎无法修复 我有一个像这样的beanConfig课程 @配置 @EnableSpringConfigured//应启用AnnotationBeanConfigureRespect @EnableLoadTimeWeaving(aspectjWeaving=aspectjWeaving.ENABLED)//为此上下文打开

我一直在尝试让一个@Configuration构建示例(在groovy中)工作,这样我就可以用spring容器触发依赖项注入,但我得到的只是关于-javaagent的错误,我似乎无法修复

我有一个像这样的beanConfig课程


@配置
@EnableSpringConfigured//应启用AnnotationBeanConfigureRespect
@EnableLoadTimeWeaving(aspectjWeaving=aspectjWeaving.ENABLED)//为此上下文打开
类BeanConfig{

然后,我将调用一个示例类new on并尝试获取spring容器中的注入,在上面的配置类中声明diSource bean

` @可配置(autowire=autowire.BY_TYPE,dependencyCheck=true) 类ExtDI{ @自动连线中断中断中断中断中断中断

def say () {
    println "ExtDI : diSource set as " + diSource.name
}
}
`

在我的采样器类中,我调用这个来尝试触发注射

` ... 静态void main(字符串[]参数){ AnnotationConfigApplicationContext ctx=新的AnnotationConfigApplicationContext(/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、spring-xxx-3.1.4.jar等 这是我的毕业名单


依赖关系{
编译'org.codehaus.groovy:groovy-all:2.1.7'
编译组:“commons collections”,名称:“commons collections”,版本:“3.2”
testCompile组:'junit',名称:'junit',版本:'4.+'
编译“org.springframework:spring核心:${spring\u version}”
编译“org.springframework:springbean:${spring\u version}”
编译“org.springframework:spring上下文:${spring\u version}”
编译“org.springframework:spring方面:${spring\u version}”
编译“org.springframework:springaop:${spring\u version}”
编译“org.springframework:spring工具:${spring_version}”
编译“org.aspectj:aspectjrt:1.6.10”
编译“org.aspectj:aspectjweaver:1.6.10”
编译“cglib:cglib:2.2”
}

在eclipse项目运行时中,我为vm参数

-javaagent:C:/Users/802518659/aspectjweaver-1.6.10.jar

并尝试了spring-instrument-3.1.4.jar的相同功能,但遇到了相同的问题

当我运行这个项目时,我得到了这个错误

`

`

这告诉我,我的应用程序无法对java类加载器进行指令插入——尽管我用-javaagent:spring instrument xxx或aspectjweaver.jar启动它——但都失败了

那么我做错了什么呢?这真的开始困扰我了-我可以在上下文中使用普通的注入(没有LTW),但我真的希望在容器之外使用这种注入


我做错了什么花了一些时间,但还是弄清楚了哪里出了问题

在spring论坛的另一篇帖子上更正,请参见

此外,我在我的博客中添加了一条较长的注释

Oct 19, 2013 4:02:40 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@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.springframework.beans.factory.support.DefaultListableBeanFactory@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.springframework.beans.factory.support.DefaultListableBeanFactory@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)
...