关于建设网站的培训知识,摄影素材库网站,株洲发布最新通告,html个人主页网页设计代码bean是如何创建的实例化bean的三种方式构造方法静态工厂#xff08;了解#xff09;实例工厂与FactoryBean实例工厂FactoryBeanbean是如何创建的实例化bean的三种方式
构造方法
bean本质上就是对象#xff0c;创建bean使用构造方法完成 提供可访问的构造方法
public clas…bean是如何创建的实例化bean的三种方式构造方法静态工厂了解实例工厂与FactoryBean实例工厂FactoryBeanbean是如何创建的实例化bean的三种方式
构造方法
bean本质上就是对象创建bean使用构造方法完成 提供可访问的构造方法
public class BookDaoimpl implements BookDao {private BookDaoimpl() {System.out.println(book dao constructor is running...);}public void save(){System.out.println(user dao save...);}
}配置
bean idbookDao classcom.dao.impl.BookDaoimpl/无参构造方法如果不存在将抛出异常BeanCreationException 例
静态工厂了解
静态工厂
public class OrderDaoFactory {public static OrderDao getOrderDao(){return new OrderDaoimpl();}
}
配置注意配置的工厂名及方法名 bean idorderDao classcom.dao.factory.OrderDaoFactory factory-methodgetOrderDao/实例工厂与FactoryBean
实例工厂
public class UserDaoFactory {public UserDao getUserDao() {return new UserDaoImpl();}
}配置先配置工厂的bean并使用factory-bean指定工厂bean配合使用实际无意义方法名不固定每次需要配置 bean iduserFactory classcom.dao.factory.UserDaoFactory/bean iduserDao factory-methodgetUserDao factory-beanuserFactory/FactoryBean
FactoryBean(务必掌握)
public class UserDaoFactoryBean implements FactoryBeanUserDao {Overridepublic UserDao getObject() throws Exception {return new UserDaoImpl();}Overridepublic Class? getObjectType() {return UserDao.class;}}
配置 bean iduserDao classcom.dao.factory.UserDaoFactoryBean/FactoryBean默认为单例如果要改非单例需要加上isSingleton返回值true为单例false为非单例
public class UserDaoFactoryBean implements FactoryBeanUserDao {//代替原始实例工厂中创建对象的方法Overridepublic UserDao getObject() throws Exception {return new UserDaoImpl();}Overridepublic Class? getObjectType() {return UserDao.class;}Overridepublic boolean isSingleton() {return false;}
}