若无参构造方法不存在 , 则抛出异常BeanCreationException
- 静态工厂(了解)
我们在之前的案例中存在有对象工厂的说法 , 我们可以设置工厂并调用其方法得到bean
// 静态工厂package com.itheima.factory;import com.itheima.dao.OrderDao;import com.itheima.dao.impl.OrderDaoImpl;//静态工厂创建对象public class OrderDaoFactory {public static OrderDao getOrderDao(){System.out.println("factory setup....");return new OrderDaoImpl();}}
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--方式二:使用静态工厂实例化bean--><bean id="orderDao" class="com.itheima.factory.OrderDaoFactory" factory-method="getOrderDao"/></beans>
- 实例工厂(了解)
和静态工厂相同 , 但不同点是方法不是静态 , 我们需要提前创建一个bean
// 实例工厂package com.itheima.factory;import com.itheima.dao.UserDao;import com.itheima.dao.impl.UserDaoImpl;//实例工厂创建对象public class UserDaoFactory {public UserDao getUserDao(){return new UserDaoImpl();}}
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--方式三:使用实例工厂实例化bean--><bean id="userFactory" class="com.itheima.factory.UserDaoFactory"/><!-- factory-bean:实例工厂本身bean factory-method:使用调用bean的方法 --><bean id="userDao" factory-method="getUserDao" factory-bean="userFactory"/></beans>
- FactoryBean(重要实用)
除了我们之前自己定义的工厂外 , Spring提供了一种官方版本的FactoryBean
// FactoryBean工厂(需接口 , < >中填写数据类接口)package com.itheima.factory;import com.itheima.dao.UserDao;import com.itheima.dao.impl.UserDaoImpl;import org.springframework.beans.factory.FactoryBean;//FactoryBean创建对象public class UserDaoFactoryBean implements FactoryBean<UserDao> {//代替原始实例工厂中创建对象的方法// 返回创建对象类型为UserDaoImpl()public UserDao getObject() throws Exception {return new UserDaoImpl();}// 这里填写接口类型public Class<?> getObjectType() {return UserDao.class;}// 可以修改来修改其scope属性public boolean isSingleton() {return false;}}
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--方式四:使用FactoryBean实例化bean--><bean id="userDao" class="com.itheima.factory.UserDaoFactoryBean"/></beans>
bean生命周期我们先来接单介绍生命周期相关概念:
- 生命周期:从创建到消亡的完整过程
- bean生命周期:bean从创建到销毁的整体过程
- bean生命周期控制:在bean创建后到销毁前做一些事情
接下来我们介绍生命周期控制方法:
- 数据层提供控制方法
由数据层提供方法 , 在xml配置文件中设置该方法
// 数据层package com.itheima.dao.impl;import com.itheima.dao.BookDao;public class BookDaoImpl implements BookDao {public void save() {System.out.println("book dao save ...");}//表示bean初始化对应的操作public void init(){System.out.println("init...");}//表示bean销毁前对应的操作public void destory(){System.out.println("destory...");}}
经验总结扩展阅读
-
-
心中的答案在这里|混迹职场,“颜值”绝对是优势,但不一定是绝对的优势,且不长久
-
-
-
-
-
周易起名方法大全,小孩子起名字该不该按生辰八字取名
-
大龄剩女|为什么会有很多人感觉大龄剩女那么难追,主要是这几个原因
-
-
导读我靠着自己的努力不断奋斗|大龄凤凰男:月薪五位数,却没人愿意嫁给我,想结婚怎么那么难
-
-
普乐安片对性功能的功效,前列腺普乐安片对性功能的功效
-
-
2022母亲节送什么礼物给婆婆合适 母亲节送婆婆礼物注意事项
-
-
鱼尾欧阳娜娜私服太有型,穿“僵尸新娘”T恤配牛仔裤,个性帅气
-
创口冬天不知道怎么护理纹眉后产生的创口?那还不快来听栖桐科普?!
-
-
-