当前位置: 首页> 娱乐> 八卦 > 全国最缺工100个职业排行出炉_福田蒙派克9座商务车报价及图片_搜索网页_优化关键词技巧

全国最缺工100个职业排行出炉_福田蒙派克9座商务车报价及图片_搜索网页_优化关键词技巧

时间:2025/7/11 15:42:11来源:https://blog.csdn.net/2301_78630849/article/details/143273350 浏览次数:0次
全国最缺工100个职业排行出炉_福田蒙派克9座商务车报价及图片_搜索网页_优化关键词技巧

5.bean配置

bean基础配置:id来定义bean名称,class指定bean的类型

bean别名配置:可以通过name属性,添加多个别名,使用逗号,分号,空格分隔

<bean id="bookDao" name="dao bookDaoImpl" class="com.itheima.dao.impl.BookDaoImpl"/>
<bean name="service,bookServiceImpl" class="com.itheima.service.impl.BookServiceImpl">

bean的作用范围:spring创建的bean默认是单例的,想要非单例的,可以将bean中的scope换成property

<bean id-"bookDao" class="com.itheima.dao.impl.BookDaoImpl" scope="property"/>

Q:为什么bean默认单例:若为非单例,则bean会无穷多,容器压力大,单例可以复用,效率高

单例可以提高效率,例如在表现层、业务层、数据层和工具对象,但是封装实体的域对象不适合

6.bean实例化

spring报错,最先看最下面的报错信息

方法一:构造方法(常用)

提供可访问的构造方法

public class BookDaoImpl implements BookDao {public void save() {System.out.println("book dao save ...")}
}

配置

<beanid="bookDao"class="com.itheima.impl.BookDaoImpl"/>

无参构造方法如果不存在,将会抛出异常BeanCreationException

方法二:静态工厂(了解)

静态工厂

public class OrderDaoFactorypublic static OrderDao getOrderDao(){return new OrderDaoImpl();
}

配置

<\<beanid="bookDao"factory-method="getOrderDao"class="com.itheima.factory.OrderDaoFactory"/>

方法三:实例工厂(了解)

实例工厂

public class UserDaoFactory {public UserDao getUserDao(){return new UserDaoImpl();}
}

配置

<bean id="userDaoFactory" class="com.itheima.factory.UserDaoFactory"/>
​
<beanid="userDao"factory-method="getUserDao"factory-bean="userDaoFactory"/>

方式四:使用FactoryBean实例化Bean(实用)

FactoryBean

public class UserDaoFactoryBean implements FactoryBean<UserDao> {public UserDao getObject() throws Exception {return new UserDaoImpl();}public Class<?> getObjectType() {return UserDao.class;}
}

配置

<beanid="userDao"class="com.itheima.factory.UserDaoFactoryBean"/>//注意,此class造出来的对象是FacotryBean接口中的getObject()造出来的对象

7.bean生命周期

提供生命周期控制方法

public class BookDaoImpl implements BookDao {public void save() {System.out.println("book dao save ...");}public void init() {System.out.println("book init ...");}public void destory() {System.out.println("book destory ...");}
}

配置生命周期控制方法

<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl" init-method="init" destory-method="destory"/>

接口控制(了解)

实现InitializingBean,DisposableBean接口

public class BookServiceImpl implements BookService,InitializingBean,DisposableBean {public void save() {System.out.println("book service save ...");}public void afterPropertiesSet() throws Exception {System.out.println("afterPropertiesSet");}public void destory() throws Exception {System.out.println("destory");}
}

经历阶段

  • 初始化容器

    1. 创建对象(内存分配)

    2. 执行构造方法

    3. 执行属性注入(set操作)

    4. 执行bean初始化方法

  • 使用bean

    1. 执行业务操作

  • 关闭/销毁容器

    1. 执行bean销毁方法

bean销毁时机

  • 容器关闭前触发bean的销毁

  • 关闭容器方式:

    1. 手工关闭容器

      ConfigurableApplicationContext接口close()操作

    2. 注册关闭钩子,在虚拟机推出前先关闭容器再退出虚拟机

      ConfigurableApplicationContext接口registerShutdownHook()操作

public class AppForLifeCycle {public static void main( String[] args ) {ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");ctx.close();}
}

关键字:全国最缺工100个职业排行出炉_福田蒙派克9座商务车报价及图片_搜索网页_优化关键词技巧

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: