Java Springbean只是一个共享对象吗

Java Springbean只是一个共享对象吗,java,spring,dependency-injection,Java,Spring,Dependency Injection,我正在试图理解Spring创建beans的目的。它们是否只是全局共享对象(这样它们被声明为 @Component public class MySpringBean{}, 后来这个对象被用在任何地方,比如在某个类中 public class MyClass { @Autowired MySpringBean mySpringBean; } )?? 他们的内部创建/实现可以这样假设吗- public class MyApp { MySpringBean mySpringBean; }

我正在试图理解Spring创建beans的目的。它们是否只是全局共享对象(这样它们被声明为

@Component 
public class MySpringBean{}, 
后来这个对象被用在任何地方,比如在某个类中

public class MyClass {
@Autowired 
MySpringBean mySpringBean;
}
)?? 他们的内部创建/实现可以这样假设吗-

public class MyApp {
MySpringBean mySpringBean;
}
在我的课堂上使用,比如-

public class MyClass {
MySpringBean mySpringBean = MyApp.mySpringBean;
}

它是仅对该类层次结构有效的对象。在您的例子中,Spring只需为mySpringBean创建一个对象,并将其用于MyClass。在内部,它更像

MySpringBean mySpringBean = new MySpringBean()
但实际上 所有Springbean都是被管理的——它们“活”在一个称为“应用程序上下文”的容器中。 通过将一个bean的实例放置到另一个bean实例中所需的字段中来实现自动连接。这两个类都应该是bean,也就是说,它们应该被定义为存在于应用程序上下文中


因此,在您的情况下,mySpringBean和MyClass的实例都将在应用程序上下文中。

基于您的问题,我相信您应该知道Spring如何管理bean(或者Spring如何管理bean从初始化到销毁的生命周期)但也要注意,您不必过多地讨论细节(wells,这是一个为您提供的框架)。是的,init涉及到使用
new
操作符,这一点绝对正确。这些对象位于容器内,并在需要时通过弹簧将其连接起来。由于bean是由Spring管理的,所以您也可以实现回调方法