Bean对象初始化方式
一、构造器实例化(无参数构造器),最标准,使用最多
old:
1)创建一个类
public class SomeBean{
public SomeBean(){
System.out.println("SomeBean构造器");
}
}
2)配置配置文件
<bean id="someBean" class="com.hpe.test.SomeBean"></bean>
3)在测试类中读取配置文件并运行
public class SomeBeanTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
SomeBean someBean = context.getBean("someBean",SomeBean.class);}
输出——>SomeBean构造器
New:
如果在对象中添加了属性,那么构造器注入使用如下方式:
添加属性的SomeBean:
public class SomeBean {
private Integer id;
private String name;
private Integer age;
public SomeBean() {
System.out.println("SomeBean构造器");
}
public SomeBean(Integer id, String name, Integer age) {
this.id = id;
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "SomeBean{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age;}}
配置文件修改:
<bean id="someBean" class="com.hpe.test.SomeBean">
<constructor-arg index="0" value="1"/>
<constructor-arg index="1" value="张三"/>
<constructor-arg index="2" value="18"/>
</bean>
输出——>SomeBean{id=1,name='张三',age=18}
还可修改为:
<bean id="someBean" class="com.hpe.test.SomeBean">
<constructor-arg type="java.lang.Integer" value="2"/>
<constructor-arg type="java.lang.String" value="李四"/>
<constructor-arg type="java.lang.Integer" value="20"/>
</bean>
或:
<bean id="someBean" class="com.hpe.test.SomeBean">
<constructor-arg name="id" value="3"/>
<constructor-arg name="name" value="王五"/>
<constructor-arg name="age" value="25"/>
</bean>
从上面的配置中可以发现:配置构造器中的属性可以通过 index(索引)的方式来指定,也可以
通过type(类型)的方式来指定,还可以通过 name(属性名称)的方式来指定。那么这三种方
式中推荐使用 name 的方式来配置。因为使用 name 方式来配置的灵活性更高,同时还便于阅
读,以及它们之间的顺序可以不固定。
浙公网安备 33010602011771号