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