首页 / 软件开发 / JAVA / 从spring的IOC说起(二)——spring的Bean的基础配置
从spring的IOC说起(二)——spring的Bean的基础配置2011-06-21 j2ee.blog.sohu.com 上次简单的说了下spring的IOC,也说到了spring的IOC强大在于有一系列可 以维护Bean不同关系的维护类的存在,而这样的维护也是基于高度可配置的 spring配置文件而言的。这次就是结合我的使用spring的IOC来讲讲我在使用中 的体会,当然,这里涉及的内容不会很高深,但是也必须读者能够读懂简单的 Bean配置才可以。我们这里只讲spring的IOC,AOP不在这范围之内,虽然AOP也是基于IOC之上 的,至于那些集合啊什么的配置也不是这里的重点。我们这里说spring的Bean配 置,主要就是说如何配置Bean在配置文件中,可以使结构更加合理化和使我们的 编写量更少,当然我所说的也不一定对,也是和大家一起讨论讨论:),也希望 大家可以提出更好的方法或模式。在spring的Bean配置中总的来说其实就一个标签<bean></bean> ,这个bean标签就攘括了几乎所有的配置,然后bean的继承、抽象等都是基于此 标签之上的,掌握了bean的配置,详细可以使自己有一个比较大的提升,尤其是 对于新手来说(我也是,呵呵 )。最基础的bean配置如下:<bean id="bean_test" class="cn.qtone.test.HelloWorld"></bean>这里我们就简单的使用HelloWorld类来实例化,使用默认的构造方法,即相 当于我们使用:HelloWorld tmp = new HelloWorld();但有一点不同的是在spring配置中的在整个应用期间只有一个实例,即是单 例的,当然这个单例是指对一个IOC容器(spring)来说的,而不是我们通常说 说的单态模式。当然,spring也可以这样配置不是单态的实例,比如我们修改如 下:<bean id="bean_test" class="cn.qtone.test.HelloWorld" scope="prototype"></bean>注意其中的不同颜色部分,这样配置后就表明每次从spring容器中获取 HelloWorld的实例的时候就会new一个新对象,即我们所说的原型,spring中 scope默认的是单态(singleton),当然针对web应用程序,还可以配置为 request、session等范围。至于什么时候使用什么权限范围就要看应用程序的使 用了,比如在多线程程序中,单态是否会对程序有所影响就需要考虑了。如果HelloWorld类没有空的构造方法,只有如下的两个构造方法,那我们该 如何配置呢?……
public HelloWorld(String str)
{
……
}public HelloWorld(Date date, int i)
{
……
}
……由于没有默认构造方法,所以我们就需要在bean的配置中写上构造参数才可 以,如下:<!-- 使用一个参数的构造 -->
<bean id="bean_test" class="cn.qtone.test.HelloWorld" scope="prototype">
<constructor- arg><value>hello</value></constructor-arg>
</bean>