Spring-Day4
12.HelloSpring
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd"> <!--使用spring来创建对象,在spring这些都称为bean类型 变量名 = new 类型();Hello hello = new Hello(); id = 变量名class = new 的对象property 相当于给对象中是属性设置一个值 --> <bean id="hello" class="com.itheima.App"><property name="str" value="Spirng"/></bean> </beans>
接下来,将对象取出来
public class MyTest {public static void main(String[] args) {//获取Spring的上下文对象ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");//我们的对象都在Spring中管理了,要使用去里面取App hello =(App)context.getBean("hello");System.out.println(hello.toString());}
}
通过spring创建对象
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
<bean id="mysqlImpl" class="com.itheima.dao.UserDaoMysqlImpl"/><bean id="UserServiceImpl" class="com.itheima.service.UserServiceImpl">
<!--ref:引用spring容器中创建好的对象value:具体的值,基本数据类型--><property name="userDao" ref="mysqlImpl"/></bean>
</beans>//在Mytest中取出public class MyTest {public static void main(String[] args) {//获取ApplicationContext:拿到Spring 的容器ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");//容器有了之后,需要什么get什么UserServiceImpl userService = (UserServiceImpl) context.getBean("UserServiceImpl");UserServiceImpl.getUser();}
}
到了现在,我们彻底不用在程序中去改动了,要实现不同的操作,只需要在xml配置文件中修改,所谓的Ioc,一句话就是:对象由Spring来创建,管理,装配!
13.IOC创建对象的方式
-
使用无参构造创建对象,默认
-
假设要用有参构造创建对象
//1.下标赋值 <bean id="user" class="com.itheima.pojo.User"><constructor-arg index="0" value="Zkw"/> </bean> //2.通过类型创建(不建议使用) <bean id="user" class="com.itheima.pojo.User"><constructor-arg type="java.lang.String" value="Zkw"/> </bean>//3.通过参数名 <bean id="user" class="com.itheima.pojo.User"><constructor-arg name="name(参数名)" value="Zkw"/> </bean>
总结:在配置文件加载的时候,容器中管理的对象就已经初始化了
13.注解实现自动装配
-
导入约束:context约束
-
配置注解的支持:context:annotation-config
<?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/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"//开启注解支持<context:annotation-config> </beans>//具体的修改方法://将xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"修改为//xmlns:context="http://www.springframework.org/schema/context"//然后复制后两行,把beans改成context即可,aop导入也是如此
@Autowired
直接在属性上使用即可,也可以在set方法上使用
使用Autowired 我们可以不用编写set方法了,前提是自动装配属性在IOC容器中存在,且名字正确
可以配合@Qualifier(value="")来指定名字
@Resource也可以,它会先查找名字,没有对应名字再去找对应的类型,也可以加个name属性来指定
相关文章:
Spring-Day4
12.HelloSpring <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xmlns:util"http://www.springframework…...
C#-类:成员属性
数据成员 ≠ 属性 成员属性 属性可以理解为一种封装 成员属性概念:一般是用来保护成员变量的 成员属性的使用和变量一样,外部用对象点出 get中需要return内容 ; set中用value表示传入的内容 get和set语句块中可以加逻辑处理。应用&#…...
qt QDragEnterEvent详解
1、概述 QDragEnterEvent是Qt框架中用于处理拖放进入事件的一个类。当用户将一个拖拽对象(如文件、文本或其他数据)拖动到支持拖放操作的窗口部件(widget)上时,系统会触发QDragEnterEvent事件。这个类允许开发者在拖拽…...
Vue项目与IE浏览器的兼容性分析(Vue|ElementUI)
总体分析 Vue.js的兼容性在不同版本间有所差异,具体针对IE浏览器的推荐版本如下: Vue 2.x 官方支持:Vue 2.x版本官方宣布支持IE9及以上版本的IE浏览器。限制与Polyfill:虽然Vue 2.x支持IE9及以上版本,但在使用时可能…...
【C++之STL】一文学会使用 string
文章目录 1. STL导读1. 1 什么是STL1. 2 STL的版本1. 3 STL六大组件1. 4 STL的重要性1. 5 STL的学习1. 6 STL系列博客的规划 2. string2. 1 为什么学习string类?2. 2 标准库中的string2. 3 基本构造2. 4 尾插与输出运算符重载2. 5 构造函数2. 6 赋值运算符重载2. 7 容量操作2.…...
好用的办公套件--- ONLYOFFICE
目录 引言 UI界面 ONLYOFFICE 协作空间 使用协作空间三步走 一、注册与登录 二、创建房间 三、上传与编辑文档 ONLYOFFICE协作空间的安全性 ONLYOFFICE 文档 关于 ONLYOFFICE 引言 ONLYOFFICE 桌面编辑器 ONLYOFFICE是一款功能全面的办公套件,支持文档、表…...
Android View事件分发
目录 1.什么是View事件分发? 2.事件的类型 3.事件的发生 4.事件分发的方法 4.1 dispatchTouchEvent() 4.2 onTouchEvent() 4.3 onInterceptTouchEvent() 5.滑动冲突 5.1 外部拦截法 5.2内部拦截法 6.onTouch的执行高于onClick 7. onTouch()和onTouchEve…...
攻防世界GFSJ1229 Three
题目编号:GFSJ1229 解题过程 1. 附件下载是三个压缩包A.zip B.zip C.zip和一个python程序Three.py 2. A.zip可以直接解压出来,内容如下: 2022-08-27 20:16:04.246131 Func A0*X0B0 2022-08-27 20:16:05.116859 Read_Data A0.txt->A0(28829613228…...
2023 icpc杭州(M,J,D,G,H)
文章目录 [M. V-Diagram](https://codeforces.com/gym/104976/problem/M)[J. Mysterious Tree](https://codeforces.com/gym/104976/problem/J)[D.Operator Precedence](https://codeforces.com/gym/104976/problem/D)[G. Snake Move](https://codeforces.com/gym/104976/probl…...
在CentOS 7上安装Alist
在CentOS 7上安装Alist 的步骤如下: 1. 卸载旧版本 如果你之前安装过旧版本的Docker,可以先卸载它: sudo yum remove docker docker-common docker-snapshot docker-engine2. 安装依赖包 确保你的系统是最新的,并安装必要的依…...
【C/C++】memcpy函数的模拟实现
零.导言 上一篇博客我们学习了memcpy函数,不妨我们现在尝试模拟实现memcpy函数的功能。 一.实现memcpy函数的要点 memcpy函数是一种C语言内存函数,可以按字节拷贝任意类型的数组,因此我们自定义的模拟函数需要两个无类型的指针参数ÿ…...
嵌入式开发之线程互斥
目录 互斥锁初始化-pthread_mutex_init 申请锁-pthread_mutex_lock 释放锁-pthread_mutex_unlock 同步 VS 互斥 临界资源:一次只允许一个任务(进程、线程)访问的共享资源,不允许多个任务同时访问的。 临界区:访问临界区的代码 互斥机制:mutex互斥锁,任务访问临界资…...
JavaScript 变量作用域与函数调用机制:var 示例详解
JavaScript 变量作用域与函数调用机制:var 示例详解 在 JavaScript 中,作用域和闭包是理解变量生命周期和行为的核心概念。通过以下这段代码,我们将详细分析如何在不同的作用域内使用 var 关键字,并解释相关的变量访问规则 代码解…...
Linux(CentOS)安装 JDK
1、下载 JDK 官网:https://www.oracle.com/ 2、上传 JDK 文件到 CentOS,使用FinalShell远程登录工具,并且使用 root 用户登录 3、解压 JDK 创建目录 /export/server mkdir -p /export/server 解压到目录 /export/server tar -zxvf jdk-17…...
AI产品经理实战手册:策略、开发与商业化指南
通过《AI产品经理手册》,将可以了解不同类型的AI,如何将AI整合到产品或业务中,以及支持创建AI产品或将AI集成到现有产品所需的基础设施。熟悉实践管理AI产品开发流程、评估和优化AI模型,以及应对与AI产品相关的复杂伦理和法律问题…...
【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用
【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用 目录 文章目录 【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用目录摘要研究背景问题与挑战如何解决创新点算法模型1. 知识总结模块(Knowledge Summarization Module&…...
Linux之初体验
目录 第1关:1-Linux初体验 第2关:1-Linux常用命令 第3关:1-Linux 查询命令帮助语句 第4关:2--查询命令-locate 第5关:2--查询命令-which/whereis 第6关:2--查询命令-find 第7关:3-Linux文…...
现代化水电管理:Spring Boot在大学城的实践
2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…...
黑马官网2024最新前端就业课V8.5笔记---HTML篇
Html 定义 HTML 超文本标记语言——HyperText Markup Language。 标签语法 标签成对出现,中间包裹内容<>里面放英文字母(标签名)结束标签比开始标签多 /拓展 : 双标签:成对出现的标签 单标签:只有开…...
GS-Blur数据集:首个基于3D场景合成的156,209对多样化真实感模糊图像数据集。
2024-10-31,由韩国首尔国立大学的研究团队创建的GS-Blur数据集,通过3D场景重建和相机视角移动合成了多样化的真实感模糊图像,为图像去模糊领域提供了一个大规模、高覆盖度的新工具,显著提升了去模糊算法在真实世界场景中的泛化能力…...
Cursor省钱神器:interactive-feedback-mcp安装配置全攻略(附常见问题排查)
Cursor省钱神器:interactive-feedback-mcp安装配置全攻略(附常见问题排查) 在AI辅助编程领域,Cursor凭借其强大的代码生成和智能补全功能,已成为开发者日常工作的得力助手。然而,许多用户在使用过程中常常…...
5步打造高效知识管理系统:Obsidian模板库实战指南
5步打造高效知识管理系统:Obsidian模板库实战指南 【免费下载链接】OB_Template OB_Templates is a Obsidian reference for note templates focused on new users of the application using only core plugins. 项目地址: https://gitcode.com/gh_mirrors/ob/OB_…...
Python与Matlab双剑合璧:高效解析XJTU-SY轴承数据集实战指南
1. 为什么选择Python和Matlab处理XJTU-SY轴承数据 轴承故障诊断是工业设备健康管理的重要环节,而XJTU-SY轴承数据集作为国内知名的公开数据集,包含了多种工况下的全寿命周期振动数据。面对这样的工程数据集,Python和Matlab各有优势。我在实际…...
drprov.dll文件丢失找不到 免费下载修复方法分享
在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…...
避坑指南:在ESXi或Proxmox VE虚拟化平台下配置Intel I350网卡直通与PXE启动
虚拟化环境下的Intel I350网卡直通与PXE启动全流程解析 在虚拟化技术日益普及的今天,企业级用户经常面临将物理网卡直通给虚拟机并实现PXE网络启动的需求。Intel I350系列网卡以其稳定性和高性能成为众多虚拟化平台的首选,但在ESXi和Proxmox VE等环境中…...
从零开始构建你的渗透测试字典库:账号密码大字典与设备默认口令全解析
从零开始构建你的渗透测试字典库:账号密码大字典与设备默认口令全解析 在安全测试领域,一个高质量的字典库往往能决定渗透测试的效率上限。想象一下,当你面对一个需要爆破的系统时,手头拥有精准覆盖目标特征的字典,就…...
攻克Godot资源提取难题:godot-unpacker工具的创新解法
攻克Godot资源提取难题:godot-unpacker工具的创新解法 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 问题:为什么普通解压工具无法胜任PCK文件提取? Godot引擎打…...
s2-pro语音合成镜像快速上手:5分钟搞定专业级文字转语音
s2-pro语音合成镜像快速上手:5分钟搞定专业级文字转语音 1. 镜像简介与核心功能 s2-pro是Fish Audio开源的专业级语音合成模型镜像,能够将文本转换为自然流畅的语音。这个镜像特别适合需要快速部署文字转语音功能的开发者、内容创作者和企业用户。 1.…...
GEE实战指南:Sentinel-2多光谱植被指数批量计算与优化
1. 为什么需要植被指数? 植被指数是遥感领域用来量化植被生长状态的核心指标。简单来说,就像医生用体温计判断病人是否发烧一样,我们可以通过卫星数据计算出的植被指数,快速了解一片区域的植被健康状况。Sentinel-2卫星提供的多光…...
一键获取B站完整评论区数据:告别数据采集烦恼的终极方案
一键获取B站完整评论区数据:告别数据采集烦恼的终极方案 【免费下载链接】BilibiliCommentScraper 项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper 还在为B站评论数据采集不完整而烦恼吗?想要批量获取视频评论区信息却无从…...
