Bean实例化
构造方法
public class BookDaoImpl implements BookDao{
public BookDaoImpl(){
}
public void save(){
System.out.println("book dao save ...");
}
}
<bean id="bookDao" class="com.xxx.dao.impl.BookDaoImpl" />
使用构造方法,私有构造方法也会被调用,使用的反射
无参构造方法如果不存在,将抛出异常 BeanCreationException
静态工厂实例化Bean
public class OrderDaoFactory {
public static OrderDao getOrderDao(){
return new OrderDaoImpl();
}
}
<bean id="orderDao" class="com.xxx.factory.OrderDaoFactory" factory-method="getOrderDao"/>
实例工厂实例化Bean
<bean id="UserFactory" class="com.xxx.factory.UserDaoFactory" />
<bean id="UserDao" factory-method="getUserDao" factory-bean="userFactory" />
public class UserDaoFactory {
public UserDao getUserDao() {
return new UserDaoImpl();
}
}
使用FactoryBean实例化Bean
public class UserDaoFactoryBean implements FactoryBean<UserDao>{
public UserDao getObject() throws Exception {
return new UserDaoImpl();
}
public Class<?> getObjectType() {
return UserDao.class;
}
// public boolean isSingleton(){
// return false;
// }
}
<bean id="userDao" class="com.xxx.factory.UserDaoFactoryBean" />