加载时间在grails中编织

时间:2011-08-30 12:43:43

标签: spring grails aop

我正在尝试在Grails项目中使用加载时编织,以便能够序列化和反序列化对象并自动注入spring依赖项。经过一番搜索,我找到了一个easy example,这似乎按预期工作。但在将相同的配置应用于简单的Grails项目后,我遇到了很多错误。例如:

[TomcatInstrumentableClassLoader@413a2870] error at org/springframework/web/servlet/theme/AbstractThemeResolver.java::0 class 'org.springframework.web.servlet.theme.AbstractThemeResolver' is already woven and has not been built in reweavable mode

为了测试这个,我创建了一个新的grails项目并更改了applicationContext.xml:

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd">

<context:spring-configured />
<context:load-time-weaver aspectj-weaving="autodetect" weaver-class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver"/>

在这个文件中我还创建了一个新的bean:

<bean class="be.testweaving.Person" scope="prototype">
    <property name="name" value="Timon"/>
</bean>

这定义了Person类的原型,并将值Timon注入name属性。

我使用grails war将其打包为战争并将其部署在tomcat服务器上。这个tomcat在他的lib目录中有org.springframework.instrument.tomcat-3.0.5.RELEASE.jar,在部署之后,我看到了我上面提到的大量错误列表。

有没有人能够在Grails中配置加载时间编织?

1 个答案:

答案 0 :(得分:0)

为什么不通过元类注入你的财产?

class ExampleBootStrap {
 def init = { servletContext ->
     Person.metaClass.constructor = {  
         def person = BeanUtils.instantiateClass(Person) 
         person.name = "Timon"
         person
     }
 }
}