@Autowire on @Configurable在本地机器上工作,但没有在其他机器上工作

时间:2018-01-11 13:45:41

标签: java spring vaadin aspectj

我有一个很奇怪的问题。即我正在使用aspectjweaver将弹簧豆注入Vaadin窗口。当我们将Intellij的应用程序部署到Win机器上的本地Tomcats时,一切正常,但是当Jenkins为我们的测试服务器(unix)部署应用程序时,自动装配的bean突然变为空。有谁知道我们可能做错了什么?配置如下:

配置类:

@Configuration
@EnableVaadin
@EnableLoadTimeWeaving(aspectjWeaving = EnableLoadTimeWeaving.AspectJWeaving.ENABLED)
@EnableAspectJAutoProxy
@EnableSpringConfigured
@ComponentScan(basePackages = {"..."})
public class VaadinConfiguration extends WebMvcConfigurerAdapter {

有错误的类:

@Configurable
public class MyVaadinWindow {

    @Autowired
    protected MyService myService;

    void myMethod() {
        myService.doSth(); \\ here I'm getting NPE
    }
}

的pom.xml

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.8.13</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>${spring.version}</version>
</dependency>

我考虑过从LTW改为CTW,但是我在尝试将它与Lombok结合时遇到了一些错误,这也是在这个项目中使用的。

@Edit 我已设法切换到编译时编织。我没想到它会起作用,但不知何故,这解决了我的问题。无论如何,这不是理想的解决方案所以我会等待其他一些想法如何解决它同时持有LWT。

0 个答案:

没有答案