我是Spring的初学者,对Bean到底是什么还不是很清楚。从它的定义来看,它似乎是由一些预先设置的配置文件或在类上使用注释来确定的对象。一旦 spring 启动,bean 就被创建了。但是 Spring 可以使用 DI 创建一些属性不是预先确定的实例吗?(比如,用户从网站发布一个 json 到 Spring。这个 json 包含一些用于新建实例的数据。Spring 可以使用这个 json使用 DI 创建实例?)
最佳答案
Bean 只是您的 spring 应用程序创建的对象。如您所知,任何 Spring 应用程序都有多个交互对象一起工作以产生所需的编程行为。
Bean 基本上是一个托管对象,即在运行时 IOC 容器根据编码器提供的定义或 beans 标记下的 apllicationContext.xml 文件中的配置创建 bean 对象,并根据需要将其注入(inject)其他类.
任何 Spring 应用程序基本上都是相互交互的各种对象的集合,这些对象或 beans 协作创建应用程序。
Bean 的生命周期由 Spring IOC 容器管理。
Spring 应用程序使用的 JSON 由 HttpMessageConverter 处理。收到新请求时,Spring 框架将使用 content-type header 来确定请求的媒体类型。 然后它将尝试在应用程序的类路径中找到相应的转换器来转换请求主体。
很明显,传入的请求主体对象不是由 Spring IOC 容器管理的,因此不是 Bean。
但这些反序列化实例在 Spring 应用程序的各个层(如服务、DAO、 Controller )中用作数据传输对象。
关于java - 如何理解Spring中的Bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44475523/