什么是Bean

Java Bean说白了就是java中的class,但是需要满足两个条件:

1.有无参构造函数

2,为成员对象设置了get set方法。

============================================

Bean和Spring的关系:

Bean相当于一个组件,这个组件用来实现一个功能,在Spring中定义Bean的目的是给你一个简单便捷的方法来调用一个组件,实现你需要的功能。

Spring可以看做是一个一个Bean组成的工厂(Factory),Bean用在Spring容器中,方便Spring容器来管理。

===========================================

Bean的属性:

1,ID,标志该Bean的名称,通过factory.getBean("id")来获得该Bean的实例。

2,class,该bean的类路径。有包名+类名组成,如 com.baidu.tieba.user.userLogin

3,Signleton,单例模式,默认为true,每次getBean(“id”)时获取的都是同一个实例,如果设置为false,即原型模式,则每次获取的是新创建的实例。
4,Init-method : 在bean实例化后要调用的方法(bean里定义好的方法)。

5,Destroy-method : bean从容器里删除之前要调用的方法。

6,Autowire : 其属性要通过何种方法进行属性的自动装配。


其中Id和Class是必须的属性,其它则可以缺省。

例如如果设置了autowire的值,则表明需要自动装配,否则是手动装配。

scope是bean的生命周期,有五种生命周期。参见Bean的作用域及生命周期
scope="prototype",等同于 Signleton="false",Bean默认是单例模式,通过设置scope="prototype",这样每次调用一个Action,都创建一个新的实例。保护数据安全。
不过在前台页面,需要数据传递的时候(这里看的很模糊,大概是这个意思,在某些时候需要使用原型模式)。

=====================举个栗子========================

<bean id="userAction" class="com.neusoft.gmsbs.gms.user.action.UserAction"
	scope="prototype">
	<property name="userBO" ref="userBO" />
</bean>
<bean id="userBO" class="com.neusoft.gmsbs.gms.user.bo.impl.UserBOImpl">
	<property name="userDAO" ref="userDAO" />
</bean>
<bean id="userDAO" class="com.neusoft.gmsbs.gms.user.dao.impl.UserDAOImpl">
	<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean> 

id相当于定义了你的这个bean的别名,如果你需要他的话只要关联这个别名就可以了,也就相当于下面的<property name="userBO" ref="userBO" />一样,在你的userAction中需要实现userBO这个功能,我关联它,那么在action中set注入就可以使用了!

你可能感兴趣的:(java,bean)