自动装配不会在春天发生

时间:2013-08-01 17:50:37

标签: spring

我一直在尝试使用自动装配,但无法自动装配。这是代码片段,

应用程序上下文文件:

<context:annotation-config />
    <context:component-scan base-package="com.shapes" />

    <bean id = "triangle" class = "com.shapes.Triangle" autowire="byName"></bean>

三角类:

@Component
public class Triangle implements Shape {

    @Override
    public void draw() {
        System.out.println("In draw");

    }

}

主要课程:

public class MainShapes {

    @Autowired
    private Triangle triangle;

    /**
     * @param args
     */
    public static void main(String[] args) {
        MainShapes shapes  = new MainShapes();
        shapes.triangle.draw();

    }
}

1 个答案:

答案 0 :(得分:2)

只有Spring管理的bean会自动自动装配(除非您使用某种AOP)。

在您的主课程中,您手动创建MainShapes,除注释外没有任何与春天相关的内容。

这不会神奇地工作。您可能想要从spring ioc容器中检索MainShapes(并确保它在应用程序上下文中)...