spring - Spring 不会发生 Autowiring

标签 spring

我一直在尝试使用 Autowiring ,但无法 Autowiring 。这是代码片段,

应用程序上下文文件:

<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();

    }
}

最佳答案

只有 spring 管理的 bean 才会自动连接(除非您使用某种 AOP)。

在你的主类中,你手动创建MainShapes,除了注释之外,没有任何与spring相关的内容。

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

关于spring - Spring 不会发生 Autowiring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18001132/

相关文章:

java - 如何知道 @JsonIgnoreProperties(ignoreUnknown=true) 忽略的所有属性

spring - 是否可以使用注释连接 Spring MVC 拦截器?

spring - 如何将用户定义的属性值应用于@RequestMapping

mysql - unknown.binary :mysql-connector-java-5. 1.23-bin :jar:SNAPSHOT is missing, 的 POM 没有可用的依赖信息

Spring 邮件禁用 TLS

java - Swagger 递归地解决类型的依赖关系(无限循环)

java - 如何注入(inject)SDK接口(interface)的新实现?

java - Spring JdbcTemplate 无法从 MySQL 获取插入 ID

java - 具有 JPA 持久性的 Spring 状态机 - 存储库使用

java - Mysql插入查询不适用于插入