Spring @Autowired 在 class 中的所有 setter

Spring @Autowired on all setter in a class

是否可以指定所有 setter 都应使用一个注释自动装配?

这是我的 class:

@Component
public class MyClass {

    private static Bean1 bean1;
    //...
    private static BeanN beanN;

    public static Bean1 getBean1() {
        return bean1;
    }
    @Autowired
    public void setBean1(Bean1 bean1) {
        MyClass.bean1 = bean1;
    }
    //...
    public static BeanN getBeanN() {
        return beanN;
    }
    @Autowired
    public void setBeanN(BeanN beanN) {
        MyClass.beanN = beanN;
    }
}

没有。没有这样的内置注释。此外,Spring 不关心您的方法是否被解释为 bean 修改器(setter)。任何方法都可以用 @Autowired 注释,并且 Spring 将尝试使用适当的参数调用它。


由于 Spring 的重点是依赖注入,因此您没有理由拥有 static 字段。只需将 bean 注入到您需要的地方即可。