Java Springbean只是一个共享对象吗
我正在试图理解Spring创建beans的目的。它们是否只是全局共享对象(这样它们被声明为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; }
@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管理的,所以您也可以实现回调方法