当前位置: 首页 > news >正文

【Spring】Bean的实例化

1、简介

        在容器中的Bean要实例化为对象有三种方式

        1、构造方法

        2、静态工厂

        3、实例工厂

        4、实现工厂接口

2、构造方法

        构造方法实例化Bean即是直接通过构造方法创建对象

<bean id="bookDao" class="com.wn.spring.dao.impl.BookDaoImpl"/>

        当不存在无参构造是会抛出异常

3、静态工厂

        静态工厂类实现

public class BookDaoFactory {public static BookDao getBookDao(){return new BookDaoImpl();}}

        配置静态工厂Bean

<bean id="bookDaoFactory" class="com.wn.spring.factory.BookDaoFactory" factory-method="getBookDao"/>

4、实例工厂

        实例工厂类实现

public class BookServiceFactory {public BookService getBookService(){return new BookServiceImpl();}}

        实例工程Bean配置

<bean id="bookServiceFactory" class="com.wn.spring.factory.BookServiceFactory"/>
<bean factory-bean="bookServiceFactory" factory-method="getBookService"/>

5、继承工厂接口

        继承工厂接口实现

public class BookDaoFactoryBean implements FactoryBean<BookDao> {@Overridepublic BookDao getObject() throws Exception {return new BookDaoImpl();}@Overridepublic Class<?> getObjectType() {return null;}
}

        继承工厂的Bean的配置

<bean id="bookDao" class="com.wn.spring.factory.BookDaoFactoryBean"/>

http://www.lryc.cn/news/127285.html

相关文章:

  • 2023牛客暑期多校训练营8-C Clamped Sequence II
  • 【GitLab私有仓库】如何在Linux上用Gitlab搭建自己的私有库并配置cpolar内网穿透?
  • 企业计算机服务器遭到了locked勒索病毒攻击如何解决,勒索病毒解密
  • Redis哨兵模式搭建
  • 大语言模型控制生成的过程Trick:自定义LogitsProcessor实践
  • Docker容器:docker的资源控制及docker数据管理
  • 从零开始打造家装预约咨询小程序
  • es线上处理命令记录
  • mysql 在nodejs中的简单使用(增删改查)
  • 1.MySQL数据库的基本操作
  • Zabbix-6.4.4 邮箱告警SMS告警配置
  • 网络安全 Day30-运维安全项目-容器架构上
  • 深入理解设计模式-创建型之单例模式
  • Vue中路由缓存问题及解决方法
  • Linux与bash(基础内容一)
  • NVIDIA Omniverse与GPT-4结合生成3D内容
  • Windows Server --- RDP远程桌面服务器激活和RD授权
  • 关于游戏盾
  • 回归预测 | MATLAB实现基于SSA-KELM-Adaboost麻雀算法优化核极限学习机结合AdaBoost多输入单输出回归预测
  • 《cpolar内网穿透》外网SSH远程连接linux(CentOS)服务器
  • IDEA启动报错【java.sql.SQLSyntaxErrorException: ORA-00904: “P“.“PRJ_NO“: 标识符无效】
  • Nginx详解
  • 摸清一下mysql授权语句的实际执行关系
  • sCrypt于8月12日在上海亮相BSV数字未来论坛
  • Hbase的列式存储到底是什么意思?一篇文章让你彻底明白
  • 机器学习|Softmax 回归的数学理解及代码解析
  • EmbedPress Pro 在WordPress网站中嵌入任何内容
  • 【C++学习手札】一文带你初识C++继承
  • 【ubuntu18.04】01-network-manager-all.yaml和interfaces和resolv.conf各有什么区别和联系
  • 24近3年内蒙古大学自动化考研院校分析