Spring中的工厂类

目录

1.ApplicationContext

4.2.BeanFactory


1.ApplicationContext

ApplicationContext的实现类,如下图:

  • ClassPathXmlApplicationContext:加载类路径下 Spring 的配置文件

  • FileSystemXmlApplicationContext:加载本地磁盘下 Spring 的配置文件

4.2.BeanFactory

  • spring中工厂的类结构图

配置文件pom.xml:

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.8.RELEASE</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.30</version></dependency></dependencies>
  • 区别:

    • ApplicationContext:只要一读取配置文件,默认情况下就会创建对象。

/*** 业务层实现类*/
public class UserServiceImpl implements UserService {private UserDao userDao;public UserServiceImpl() {System.out.println("UserServiceImpl对象创建了...");}public UserServiceImpl(UserDaoImpl userDao) {this.userDao = userDao;}public void addUser(){userDao.addUser();}
}
/*** 模拟表现层*/
public class Client {public static void main(String[] args) {new ClassPathXmlApplicationContext("applicationContext.xml");System.out.println("Spring IOC容器创建好了");}
}

BeanFactory:是在 getBean 的时候才会创建对象。

/*** 业务层实现类*/
public class UserServiceImpl implements UserService {private UserDao userDao;public UserServiceImpl() {System.out.println("UserServiceImpl对象创建了...");}public void setUserDao(UserDao userDao) {this.userDao = userDao;}public void addUser(){userDao.addUser();}
}
 /*** 模拟表现层*/public class Client {public static void main(String[] args) {new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));System.out.println("Spring IOC容器创建好了");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/606032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TypeScript 从入门到进阶之基础篇(五) 枚举类型篇

系列文章目录 TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇TypeScript 从入门到进阶之基础篇(三) 元组类型篇TypeScript 从入门到进阶之基础篇(四) symbol类型篇 持续更新中… 文章目录 …

Ubuntu安装Anaconda并创建虚拟环境

1. 在Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror页面的中后部找到相应Server的最新版本。 2. 点击下载发文时的最新版本Anaconda3-2023.09-0-Linux-x86_64.sh。 3. 上传后&#xff0c;执行bash Anaconda3-2023.09-0-Linux-x86_64.…

【性能测试入门】:压力测试概念!

压力测试可以验证软件应用程序的稳定性和可靠性。压力测试的目标是评估软件在极端负载条件下的鲁棒性和错误处理能力&#xff0c;并确保软件在紧急情况下不会崩溃。它甚至可以进行超出软件正常工作条件的测试&#xff0c;并评估软件在极端条件下的工作方式。 在软件工程中&…

Arrays 的使用

Arrays 概述 提供了数组操作的相关方法&#xff0c;连接数组和集合 asList 返回指定数组的列表列表和数组的引用位置相同 Integer[] arrs new Integer[] {1,2,3,4,5,6,7,8,9};List<Integer> list Arrays.asList(arrs);System.out.println(list);arrs[5] 100;Syste…

【设计模式之美】SOLID 原则之二:开闭原则方法论、开闭原则如何取舍

文章目录 一. 如何理解“对扩展开放、修改关闭”&#xff1f;二. 修改代码就意味着违背开闭原则吗&#xff1f;三. 如何做到“对扩展开放、修改关闭”&#xff1f;四. 如何在项目中灵活应用开闭原则&#xff1f; 一. 如何理解“对扩展开放、修改关闭”&#xff1f; 具体的说&a…

如何判断模型陷入局部最优解的陷阱?

判断一个模型是否陷入了局部最优解的陷阱并不总是直观的&#xff0c;但有一些迹象和方法可以帮助我们做出判断&#xff1a; 训练进程停滞&#xff1a; 如果模型的训练误差或验证误差在经过多次迭代后停止改善或改善非常缓慢&#xff0c;这可能是一个迹象。 训练和验证误差的差…

欠拟合与过拟合

在模型训练中&#xff0c;我们总是希望最终的模型在训练集上有很好的拟合即训练误差小&#xff0c;同时在测试集上也要有较好的拟合效果即泛化误差小&#xff0c;但往往不尽人意。 总之&#xff0c;模型的训练是一个不断调整和优化的过程&#xff0c;我们需要根据实际情况选择合…

【EI会议征稿通知】第三届城市规划与区域经济国际学术会议(UPRE 2024)

第三届城市规划与区域经济国际学术会议&#xff08;UPRE 2024&#xff09; 2024 3rd International Conference on Urban Planning and Regional Economy 第三届城市规划与区域经济国际学术会议&#xff08;UPRE 2024&#xff09;于2024年4月19-21日在泰国曼谷举行。会议旨在…

【MySQL】分组(group by)后再筛选(having)巧用 sum(条件表达式) 语法

力扣题 1、题目地址 1083. 销售分析 II 2、模拟表 表&#xff1a;Product Column NameTypeproduct_idintproduct_namevarcharunit_priceint Product_id 是该表的主键(具有唯一值的列)。该表的每一行表示每种产品的名称和价格。 表&#xff1a;Sales Column NameTypesel…

Studio 3T客户端连接Mongodb数据库服务

这里需要注意 一定要先开Studio 3T 到 创建连接时才开Mongodb服务 不然 Studio 3T 会找不到Mongodb服务 不知道这是不是 Studio 3T官方问题 期待解决吧 我们打开 Studio 3T 然后点击 Create a new connection 开始创建连接 新弹出的窗口中选择 Manually configure my connec…

实验4.4 动态路由OSPF协议的配置

实验4.4 动态路由OSPF协议的配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.配置交换机和路由器的接口的IP地址等参数。2.配置动态路由OSPF协议&#xff0c;实现全网互通。 六、任务验收七、任务小结八、知识链接1&#xff0e;OSPF协议概念2&#xff0e;…

MessageBox打通数字通信:深度解析HubSpot与微信群的无缝对接

在当今数字化时代&#xff0c;企业追求更高效的客户互动方式。HubSpot作为综合性的市场营销、销售和服务平台&#xff0c;其与微信群的无缝对接成为企业数字化沟通的重要一环。今天运营坛将深度解析HubSpot如何精准对接微信群&#xff0c;并着重探讨MessageBox在这一过程中的关…

鸿蒙Ability开发-Stage模型下Ability的创建和使用

创建Ability和Page页面 创建两个Ability&#xff1a;EntryAbility&#xff0c;DetailsAbility&#xff0c;其中EntryAbility是由工程默认创建的&#xff0c;这里我们只讲如何创建DetailsAbility。 使用DevEco Studio&#xff0c;选中对应的模块&#xff0c;单击鼠标右键&…

【DSP原理及应用】实验-CCS的使用与汇编程序设计

目录 实验 CCS的使用和汇编程序设计一、实验目的二、试验设备三、实验内容四、实验程序 实验 CCS的使用和汇编程序设计 一、实验目的 熟悉CCS开发软件 学会C55X汇编语言程序设计 熟悉c55x汇编指令 二、试验设备 计算机&#xff0c;CCS开发环境 三、实验内容 安装CCS5.5 …

vcpkg安装zlmediakit(windows环境)

文章目录 一、简介二、vcpkg安装1. vcpkg源码下载2. vcpkg安装 三、安装zlmediakit1. 默认安装开启特性: [core,mp4,openssl,webrtc]2. 安装全部特性zlmediakit(包括webrtc datachannel)3. 安装路径4. 安装不同的版本5. 卸载 四、问题1. 启动服务乱码问题 一、简介 vcpkg是一个…

2401vim,vim重要修改更新大全

原文 2023 更好的UTF-16支持 添加strutf16len()和utf16idx(),并在byteidx(),byteidxcomp()和charidx()中添加utf16标志,在内置.txt文档中. 添加crypymethod xchacha20v2 与xchacha20基本相同,但更能抵御libsodium的变化. 2022 添加"smoothscroll" 用鼠标滚动…

Saprk SQL基础知识

一.Spark SQL基本介绍 1.什么是Spark SQL Spark SQL是Spark多种组件中其中一个,主要是用于处理大规模的[结构化数据] Spark SQL的特点: 1).融合性:既可以使用SQL语句,也可以编写代码,同时支持两者混合使用. 2).统一的数据访问:Spark SQL用统一的API对接不同的数据源 3).H…

超好用的阅读器更新摸鱼模式啦

潮汐阅读器重磅更新啦&#xff01;这次更新的是隐蔽模式&#xff08;摸鱼模式&#xff09;。 何为隐蔽模式&#xff1f;就是将阅读窗口的标题栏隐藏掉&#xff0c;从而可以使阅读窗口可以隐藏在任意其他窗口里面不被发现&#xff0c;从而可以快乐的看小说摸鱼啦&#xff01; …

InfluxDB学习笔记

本博客是我在学习InfluxDB的时候&#xff0c;记录的笔记&#xff0c;大家可以看看参考学些。 简介 简述 InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成&#xff0c;着力于高性能查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据&#xff0c;IoT…

18.将文件上传至云服务器 + 优化网站的性能

目录 1.将文件上传至云服务器 1.1 处理上传头像逻辑 1.1.1 客户端上传 1.1.2 服务器直传 2.优化网站的性能 2.1 本地缓存优化查询方法 2.2 压力测试 1.将文件上传至云服务器 客户端上传&#xff1a;客户端将数据提交给云服务器&#xff0c;并等待其响应&#xff1b;用户…