IOC 里容器对bean的管理
1.复杂使用中的复杂工厂.
工厂方法中new一个实例以后,但是若是还需要给他赋值.因为这里都是在方法内做的,没有办法通过xml来表达.
最好的办法就是给工厂类增加一些属性,这些属性的赋值通过xml来做,然后在方法内把这些属性赋值给new出来的实例.
这样的话,就必须要求new一个工厂类对象,也就是说要做一个bean,因为上面都是实例属性和实例方法.
工厂类的写法
private String name;
public void setName(String name) {
this.name = name;
}
public ICar getCar(){
Car car=new Car();
car.setName(name);
return car;
}
XML的写法
bean id="car" factory-bean="carFactory" factory-method="getCar" />
<bean id="carFactory" class="com.calos.test1.CarFactory" >
<property name="name" value="IBM"/>
</bean>
2.bean继承
以下都是xml的写法
2.1 有继承关系的
写一个父类bean,写上通用的固定属性,若是不需要被new,就加上abstract=true.因为有具体类,那就写上class属性
子类的bean,就不需要写class了.parent%
1.复杂使用中的复杂工厂.
工厂方法中new一个实例以后,但是若是还需要给他赋值.因为这里都是在方法内做的,没有办法通过xml来表达.
最好的办法就是给工厂类增加一些属性,这些属性的赋值通过xml来做,然后在方法内把这些属性赋值给new出来的实例.
这样的话,就必须要求new一个工厂类对象,也就是说要做一个bean,因为上面都是实例属性和实例方法.
工厂类的写法
private String name;
public void setName(String name) {
this.name = name;
}
public ICar getCar(){
Car car=new Car();
car.setName(name);
return car;
}
XML的写法
bean id="car" factory-bean="carFactory" factory-method="getCar" />
<bean id="carFactory" class="com.calos.test1.CarFactory" >
<property name="name" value="IBM"/>
</bean>
2.bean继承
以下都是xml的写法
2.1 有继承关系的
写一个父类bean,写上通用的固定属性,若是不需要被new,就加上abstract=true.因为有具体类,那就写上class属性
子类的bean,就不需要写class了.parent%