spring框架中的bean是什么? 豆的用途是什么?
答案 0 :(得分:17)
在Spring的上下文中,bean是托管对象。什么是托管对象?这是Spring意识到的一个对象,Spring知道如何操作,例如注入属性,调用回调方法等。
常规java类(Spring不知道)和 beans (Spring知道)之间存在差异。
通常,Spring bean遵循Java bean约定,因此Spring可以轻松地操作它们。例如,如果声明bean具有属性xxx
,则Spring将期望存在getXxx
和setXxx
。但是,从Spring 2.X开始,可以依赖注入私有变量(使用注释),因此不再需要定义公共setter以便为属性启用依赖注入。
(术语 bean 在某种意义上令人困惑,因为它经常用来表示(1)由容器管理的东西,如企业java bean(EJB)或(2)符合Java bean约定的东西。)
答案 1 :(得分:3)
Java Bean规范确实拼写了no-arg构造函数,getter / setter和serializable,但是Spring并不要求你的bean遵循规范。 Spring处理Plain Old Java Objects,无论它们是否符合Java Bean规范。
豆子有什么用?他们用代码表达你的意愿。 Spring正在做的就是管理他们的生命周期并将它们连接在一起以实现您的目标。
答案 2 :(得分:1)
bean是一个POJO,其setter和getter遵循bean约定。
bean用于传递数据,jsps也有对bean的特殊支持
答案 3 :(得分:0)
Spring世界中的bean是使用bean id或name使用Spring约定定义的任何对象。它的生命周期由Spring容器管理。 bean可以是POJO或具有静态方法的工厂实例。它甚至可以是JNDI资源,而不是Java Bean。由Spring容器管理的Bean甚至可以是一个可以隐藏bean的代理bean(特别是使用TransactionProxyFactory)。
简而言之,其生命周期由Spring容器管理的任何bean都是一个Spring bean。
答案 4 :(得分:-1)
bean是一个具有公共标准构造函数,getter / setter(属性)的类,它必须是可序列化的。维基百科对此进行了阐述。
这种方式spring框架知道如何创建bean的实例(公共标准构造函数)以及存在哪些属性(使用反射)