1.基本的bean配置
一个bean中通常需要定义最基本的两个属性id和class。class属性是必须的。如果一个Bean中需要引用另一个Bean,那么id属性也是必须的。Bean通过id属性相互访问。
eg: <bean id = "demoBean" class = "DemoBean"/> 等价于:DemoBean demo = new DemoBean();
2.通过factory-method
如果一个Bean不能通过new来创建一个实例,而是通过某个工厂类的某个方法来创建,需要把bean的class属性配置 成这个工厂类,factory-method属性配置为产生实例的方法。
eg: <bean id = "demoBean" class = "MyFactoryBean" factory-method = "createBean"/>
等价于:demoBean = MyFactoryBean.createBean();
3.构造函数<constructor-arg>
如果JavaBean构造函数带有参数,需要指定构造函数的参数。参数的先后顺序与构造函数中的参数顺序相同
eg: <bean id = "deamoBean" class = "DemoBean">
<constructor-arg><ref bean = "demoBean1"></constructor-age>
<constructor-age><value>1</value></constructor-age>
</bean>
等价于 public class DemoBean{
private DeamoBean1 demoBean1;
private int value;
public DemoBean (DemoBean1 demoBean1,int value){
this.demoBean1 = demoBean1;
this.value = value;
}
}
4.单例模式singleton
Bean中还可以定义是否为单例模式。单例模式即在程序中只有一个实例。有的java对象只要有一个就足够了,例如数据源的Bean一般就配置为单例模式。如果想配置为非单例模式,将singleton属性值定义为false。Spring框架默认singleton为true,即为单例模式
eg: <bean id = "dataSource" class = "DataSource" singleton = "false"?/>
5.普通属性<property>
Spring 通过Bean的setter方法设置属性,所有一般需要由Spring注射的属性都有setter和getter方法;property通常有2个属性,name 和value。<property>有两个不同的写法
eg : <bean id = "demoBean" class = "DemoBean">
<property name = "username" value = "root"></property>
<property name = "userpass" >
<value >root</value>
</property>
</bean>
等价于: DemoBean demoBean = new DemoBean();
demoBean.setUsername("root");
demoBean.setUserpass("root");
6.对象属性<ref>
Spring配置文件中的Bean之间可以相互引用,引用时用<ref>配合Bean的id属性使用。
eg: <bean id = "demoBean" class = "DemoBean"/>
<bean id = "demoBean1" class = "DemoBean1">
<property name = "dao">
<ref bean = "demoBean">
</property>
<property name = "dao1">
<bean class = "DemoBean2"/><!--使用匿名对象-->
</property>
</bean>
7.配置Lists属性<list>
可以配置任意类型的对象
<property name = "someList">
<list>
<value>String,Integer,Double等对象</value>
<ref bean = ""/>
</list>
</property>
8.配置Set属性<set>
和list配置一样
9.配置Map属性<map>
<property>
<map>
<entry key = "one">
<value>just some String</value>
</entry>
<entry key-ref = "two">
<ref bean = ""/>
</entry>
</map>
</property>
10.配置Properties属性<props>
使用<props>与<prop>配置Properties属性,<props>配置一个Properties对象,<prop>配置一条属性,属性key配置索引
eg: <property name = "props">
<props>
<prop key = "one">root</prop>
<prop key = "two">root</prop>
</props>
</property>
等价于: Properties props = new Properties (){
{
put ("one","root");
put("two","root");
}
};