有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (3) 个答案

  1. # 1 楼答案

    @Autowire允许您将bean从上下文注入到“外部世界”,外部世界就是您的应用程序。 由于使用@Configuration类,您处于“上下文世界”中,因此不需要显式地自动连接(从上下文查找bean)

    当从给定实例访问方法时,可以考虑类似的类比。当您在实例范围内时,不需要写this来访问实例方法,但外部世界必须使用实例引用

    编辑

    当您编写@Configuration类时,您正在为将由IOC创建的bean指定元数据

    另一方面@Autowire注释允许您在应用程序中注入初始化的bean,而不是元数据。因此,不需要显式注入,因为在Configuration类中不使用bean

  2. # 2 楼答案

    带有@Configuration注释的类是为上下文定义bean的地方。但是Springbean应该定义自己的依赖项。您的案例B类应该在类定义中定义自己的依赖项。例如,如果您的B类取决于您的A类,则应如下所示:

    public class B
    {
        @Autowired
        A aInstance;
    
        public A getA()
        {
            return aInstance;
        }
    
        public void setA(A a)
        {
            this.aInstance =  a;
        }
    }
    

    在上面的例子中,当spring构建它的上下文时,它会查找bean,它的类型是A,在您的配置类中也被定义为bean,并在运行时将其自动连接到B,以便B可以在需要时使用它

  3. # 3 楼答案

    你好,简,你的问题标记为4年前已回答,但我找到了更好的来源: https://www.logicbig.com/tutorials/spring-framework/spring-core/javaconfig-methods-inter-dependency.html

    下面是另一篇同样观点的文章: https://dzone.com/articles/spring-configuration-and,它还指出这种用法没有很好的记录,我发现这是真的。(?)

    因此,基本上,如果beanA的初始化依赖于beanB,只要您在应用程序上下文中声明这两个bean(即@Configuartion类),spring就会在没有显式@Autowired注释的情况下连接它们

    enter image description here