Java Spring@EnableSpringConfigured不工作

Java Spring@EnableSpringConfigured不工作,java,spring,spring-aop,Java,Spring,Spring Aop,我尝试使用@enablespringsconfigured,但它不起作用 Engine.java @Component public class Engine { public void run() { System.out.println("Engine run"); } } Entity.java @Component @Configurable(autowire = Autowire.BY_TYPE) public class Entity {

我尝试使用@enablespringsconfigured,但它不起作用

Engine.java

@Component
public class Engine {

    public void run() {
        System.out.println("Engine run");
    }
}
Entity.java

@Component
@Configurable(autowire = Autowire.BY_TYPE)
public class Entity {

    @Autowired
    private Engine engine;

    public void exec() {
        if (engine != null)
            engine.run();
        else
            System.out.println("exec failure");
    }

}
EntityBuilder.java

@Component
public class EntityBuilder {

    public Entity create() {
        return new Entity();
    }
}
EntityApplication.java

@Configuration
@ComponentScan
@EnableSpringConfigured
public class EntityApplication {

    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(EntityApplication.class);
        EntityBuilder builder = context.getBean(EntityBuilder.class);
        builder.create().exec();
    }
}
以上四个java在同一个包中,我尝试运行EntityApplication.java,希望看到“Engine run”,但实际结果总是“exec failure”



救命啊!代码在

中,您将实体声明为spring组件,但在EntityBuilder create()方法中,您手动创建实体实例,这意味着 未使用由spring容器创建的实体对象。 那个么,如何将spring自动连接引擎实例到您自己的实体实例中呢。 每次
if(engine!=null)
变为false的原因。 如果将类声明为spring组件,spring容器将创建
为了得到正确的布线系统,我们需要为它们提供实例。如果这些类与连线连接,则不要创建自己的实例。

只有在启用加载时间波动的情况下,Spring才能配置对象。您应该使用
@EnableLoadTimeWeaving
注释标记配置


您需要为可配置注释进行加载时编织或编译时编织

您得到的异常是什么没有异常,只需输出“exec failure”@Arun Kumar mudraboyin您使用的spring版本是4.3.11.release,但我使用了@EnableSpringConfigured annotation,该支持旨在用于在任何容器控制之外创建的对象。因此,当我新建一个对象时,它应该是aop和自动连接的。但是我使用了@EnableSpringConfigured注释,该支持旨在用于在任何容器的控制之外创建的对象。因此,当我新建一个对象时,它应该是aop和自动连线。