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

Spring系统学习——持续更新

spring概述

1.轻量级的开源的JAVAEE框架
2.解决企业应用开发的复杂性
3.两大核心 :IOC(控制反转)和AOP(面向切面)
4.Spring特点:

  • 1.方便解耦,简化开发。
  • 2.Aop编程支持
  • 3.方便程序测试
  • 4.方便和其他框架进行整合
  • 5.方便进行事物操作
  • 6.降低API开发难度

IOC概念和原理:

什么是Ioc:

  1. 控制反转,把对象的创建和对象之间的调用过程,都交给Spring进行管理
  2. 使用IOC的目的:为了降低耦合度

IOC底层原理:

xml解析、工厂模式、反射

假设有UserService与UserDao两个对象,UserService对象要调用UserDao对象的add()方法,1>.最原始写法为直接调用:(耦合度过高)
一个对象调用另一个对象方法

2>.通过工厂模式:降低UserService对象与UserDao对象之间的耦合度;只能说降低耦合度到最低限度,耦合对不能完全消失
工厂模式
IOC过程
1.xml配置文件,配置创建的对象

<bean id="dao" class = "com.base.UserDao"></bean>

2.创建工厂类,在工厂类中解析xml配置文件,通过反射获取对象的字节码文件,通过newInstance()方法获取创建的对象
在这里插入图片描述
IOC思想基于Ioc容器完成,IOC容器底层就是对象工厂

二:Spring提供IOC容器实现的两种方式:(两个接口)

(1)BeanFactory:

spring内置的方式,IOC容器基本实现方式;
特点:加载配置文件的时候不会创建对象,在获取或者使用的时候才会创建对象;

(2)ApplicationContext:

BeanFactory接口的子接口,提供了更多更强的功能,一般面向开发人员使用
特点:加载配置文件的时候就会把配置文件中的对象进行创建
ApplicationContext接口的实现类:
在这里插入图片描述

bean管理的两大内容:

(1)spring创建对象
(2)spring注入属性

1.实现Bean管理操作的两种方式

xml方式创建对象
<bean id="user" class="com.springText.spring5.User"></bean><!--使用property完成属性注入name:类里面属性名称value:向属性注入的值-->
set方法注入属性值
public class Book{private String bname;public void setBname(String bname){this.bname = bname;}public static void main(String[] args){Book book = new Book();book.setName("小韩");}
}
在spring配置文件xml中配置对象创建,配置属性注入
//配置对象创建
<bean id="book" class="com.springText.spring5.Book">
//配置属性注入
<property name="bname" value="易筋经"></property>
<property name="bauthor" value="夷陵老祖"></property>
</bean>
有参构造注入属性值

1.创建类,定义属性,创建属性对应有参构造。

public class Orders{//属性private String oname;private String address;//有参构造函数public Orders(String oname,String address){this.oname = oname;this.address = address;}public void orderTest(){System.out.println(oname+"::"+address);}
}

2.在Spring的配置文件中进行配置:constructor-arg

<!--有参构造注入属性-->
<bean id=" orders" class="com. springText. spring5. Orders">
<constructor-arg name ="oname" value="电脑"></constructor-arg>
<constructor-arg name = "address" value ="China"></constructor arg>
</bean>
p名称空间注入:

1.使用p名称空间注入,可以简化基于xml配置方式
第一步:在xml配置文件中添加p名称空间
在这里插入图片描述
(2)进行属性注入,在bean标签里进行操作p:bname

<bean id="Order" class="com.springTest.spring5.Order" p:oname ="小兔" p:address="China"></bean>

xml注入其他类型属性:注入空值和特殊符号

(1)设置null值:
<--null-->
<property name="address">
<null/>
</property>

(2)包含一些特殊符号

<!--属性值包含特殊符号1.<>进行转义 &lt; &gt;2. 或者:把带特殊符号内容写到CDATA
>
<property name = "address">
<value>![CDATA<<南京>>]]</value>
</property>
</bean>

相关文章:

Spring系统学习——持续更新

spring概述 1.轻量级的开源的JAVAEE框架 2.解决企业应用开发的复杂性 3.两大核心 &#xff1a;IOC&#xff08;控制反转&#xff09;和AOP&#xff08;面向切面&#xff09; 4.Spring特点&#xff1a; 1.方便解耦&#xff0c;简化开发。2.Aop编程支持3.方便程序测试4.方便和其…...

【自学笔记】机器学习基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 机器学习重点知识点总览一、机器学习基础概念二、机器学习理论基础三、机器学习算法1. 监督学习2. 无监督学习3. 强化学习 四、机器学习处理流程五、机器学习常见问…...

QT笔记——QRadioButton

文章目录 1、概要2、实际的应用2.1、创建多个QRadioButton,只可同时选中其中一个&#xff0c;点击后实现对应的槽函数 1、概要 实现QRadioButton相关的应用&#xff1b;2、实际的应用 2.1、创建多个QRadioButton,只可同时选中其中一个&#xff0c;点击后实现对应的槽函数 创建…...

微服务面试题:远程调用

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

共享设备管理难?MDM助力Kiosk模式一键部署

目录 1. 简化设备部署与配置&#xff1a;实现一键式部署 2. 自动化应用更新与内容推送&#xff1a;确保设备始终保持最新状态 3. 权限控制与设备安全&#xff1a;防止滥用与数据泄露 4. 远程管理与故障诊断&#xff1a;保障设备长期稳定运行 5. 数据分析与报告&#xff1a…...

C++17 中的 std::reduce:详细教程

文章目录 1. 简介2. 函数签名3. 使用场景3.1 简单的累加操作3.2 自定义归并操作3.3 并行计算的性能优势 4. 注意事项4.1 归并操作的结合律和交换律4.2 默认值的使用 5. 总结 1. 简介 std::reduce 是 C17 标准库中引入的一个算法&#xff0c;用于对范围内的元素进行归并操作。它…...

Navicat导入海量Excel数据到数据库(简易介绍)

目录 前言正文 前言 此处主要作为科普帖进行记录 原先Java处理海量数据的导入时&#xff0c;由于接口超时&#xff0c;数据处理不过来&#xff0c;后续转为Navicat Navicat 是一款功能强大的数据库管理工具&#xff0c;支持多种数据库系统&#xff08;如 MySQL、PostgreSQL、…...

【Map vs Set】:Java数据存储的“双子星”对决

个人主页&#xff1a;♡喜欢做梦 欢迎 &#x1f44d;点赞 ➕关注 ❤️收藏 &#x1f4ac;评论 目录 &#x1f370;一、搜索 &#x1f36e;1.概念 &#x1f36e;2.模型 &#x1f370;二、Map &#x1f368;1.什么是Map&#xff1f; &#x1f368;2.Map的实例化 &…...

储能能量管理监测系统在储能物联网中的应用优势

安科瑞刘鸿鹏 摘要 本文探讨了微电网能量管理系统在现代储能物联网中的应用。随着能源危机和新能源技术的发展&#xff0c;微电网技术成为利用新能源电力的重要方向。微电网能量管理系统通过实时监控、智能预测、协调控制和经济调度等功能&#xff0c;优化能源使用&#xff0…...

用户管理中心--注册登录功能的设计

文章目录 1.定义接口2.注册逻辑的实现2.1引入依赖2.2注册逻辑2.3测试方法 3.登录逻辑的实现3.1接口的定义与实现3.2记录用户的登录态3.3脱敏处理 1.定义接口 在userService这个接口里面定义我们的userRegister方法&#xff0c;表示的是我们的用户的注册的相关的逻辑&#xff1…...

【删除tomcat默认管理控制台】

停止Tomcat&#xff1a; ./catalina.sh stop 删除管理控制台应用&#xff1a; 进入Tomcat的webapps目录&#xff1a; cd /path/to/tomcat/webapps List item 删除manager和host-manager文件夹&#xff1a; rm -rf manager host-manager 启动Tomcat&#xff1a; ./catali…...

Java虚拟机面试题:JVM调优

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

MySQL 插入替换语句(replace into statement)

我们日常使用 insert into 语句向表中插入数据时&#xff0c;一定遇到过主键或唯一索引冲突的情况&#xff0c;MySQL的反应是报错并停止执行后续的语句&#xff0c;而replace into语句可以实现强制插入。 文章目录 一、replace into 语句简介1.1 基本用法1.2 使用set语句 二、注…...

基于单片机的多功能热水器设计(论文+源码)

2.1系统方案设计 基于单片机的多功能热水器系统&#xff0c;其系统框图如图2.1所示。主要采用了DS18B20温度传感器&#xff0c;HC-SR04超声波模块&#xff0c;STC89C52单片机&#xff0c;液晶&#xff0c;继电器等来构成整个系统。硬件上主要通过温度传感器进行水温的检测&…...

DeepSeek R1本地部署 DeepSeek Api接口调用 java go版本

1、本地ollama的API接口 接着上一章所本地部署deepseek&#xff0c;这一章我们调用ollama api 对应的curl&#xff1a; curl --request POST \--url http://localhost:11434/api/generate \--header Accept: */* \--header Accept-Encoding: gzip, deflate, br \--header Con…...

使用python脚本提取html网页上的所有文本信息

你可以使用 BeautifulSoup 库来提取 HTML 网页上的所有文本信息。以下是一个示例脚本&#xff1a; 步骤 安装 beautifulsoup4 和 requests&#xff08;如果尚未安装&#xff09;&#xff1a; pip install beautifulsoup4 requestsPython 脚本&#xff1a; import requests fro…...

基于SSM+uniapp的购药小程序+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、普通用户功能模块&#xff1a;用户管理、商家管理、药品管理、药品信息管理、发票管理、订单管理、收藏管理、购物车、充值、下单等技术选型&#xff1a;SSM&#xff0c;Vue&#xff08;后端管理web&#xff09;&#xff0c;uniapp等测…...

YOLO11网络结构以及改进1

YOLO11 1.YOLO11网络结构图在哪里&#xff1f;2.对应的网络结构图3.每一个模块详解3.1 Conv模块3.2关于卷积模块3.3 关于给各个模块指定参数的细节 4.加入CBAM 1.YOLO11网络结构图在哪里&#xff1f; 2.对应的网络结构图 3.每一个模块详解 3.1 Conv模块 位置&#xff1a;ultr…...

AI 编程私有化部署,在使用 cline 时,可能无法避免私隐的泄漏问题

摘录&#xff1a;Cline Privacy Policy https://github.com/cline/cline/blob/main/docs/PRIVACY.md Key Points Cline operates entirely client-side as a VS Code extensionNo code or data is collected, stored, or transmitted to Clines servers 问题是&#xff1a…...

计算机视觉-局部特征

一、局部特征 1.1全景拼接 先用RANSAC估计出变换&#xff0c;就可以拼接两张图片 ①提取特征 ②匹配特征 ③拼接图像 1.2 点的特征 怎么找到对应点&#xff1f;&#xff08;才能做点对应关系RANSAC&#xff09; &#xff1a;特征检测 我们希望找到的点具有的特征有什么特…...

数据结构:Map Set(一)

目录 一、搜索树 1、概念 2、查找 3、插入 4、删除 二、搜索 1、概念及场景 2、模型 &#xff08;1&#xff09;纯key模型 &#xff08;2&#xff09;Key-Value模型 三、Map的使用 1、什么是Map&#xff1f; 2、Map的常用方法 &#xff08;1&#xff09;V put(K …...

关闭浏览器安全dns解决访问速度慢的问题

谷歌浏览器加载速度突然变慢了&#xff1f;检查安全DNS功能(DoH)是否被默认开启。 谷歌浏览器在去年已经推出安全DNS功能(即DoH) , 启用此功能后可以通过加密的DNS增强网络连接安全性。例如查询请求被加密后网络运营商将无法嗅探用户访问的地址&#xff0c;因此对于增强用户的…...

C语言-章节 4:函数的定义与声明 ——「神秘法术的卷轴」

少年和 Inta 成功通过运算符与表达式的考验后&#xff0c;继续在函数城堡中探索。他们沿着一条闪烁着幽光的走廊前行&#xff0c;走廊两侧的墙壁上刻满了奇异的符号&#xff0c;仿佛在诉说着古老的编程秘密。终于&#xff0c;他们来到了一间神秘的房间&#xff0c;房间中央悬浮…...

47.实验室管理系统(基于SSM和html的Java项目)

目录 1.系统的受众说明 2.系统可行性分析 2.1 经济可行性 2.2 技术可行性 2.2.1 Java Web技术 2.2.2 Eclipse 2.2.3 Tomcat 2.2.4 数据库 2.2.5 Layui框架 2.2.6 SSM框架 3.系统需求分析 3.1 用户需求分析 3.2 功能需求分析 3.3 其他需求分析 4.系统设计 4.1 系…...

flutter doctor 报错—CocoaPods not installed

执行命令 brew install cocoapodscommand not found: brew报错解决&#xff1a; 添加链接描述...

二叉树进阶:平衡二叉树、完全二叉树、满二叉树详解

在上一篇博客中&#xff0c;我们介绍了二叉树的基本概念、遍历方式以及常见操作。本篇将深入探讨二叉树的几种特殊类型&#xff1a;平衡二叉树、完全二叉树和满二叉树&#xff0c;并通过Java代码示例帮助大家更好地理解这些概念。 1. 满二叉树 (Full Binary Tree) 定义 满二叉…...

【免费送书活动】《MySQL 9从入门到性能优化(视频教学版)》

本博主免费赠送读者3本书&#xff0c;书名为《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》。 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 这本书已经公开…...

【人工智能】通过python练习机器学习中的8大算法

python一系列练习在前面几节中基本练习了一遍&#xff0c;本篇通过机器学习的算法加强python的训练。我印象中常用的几种算法有&#xff1a;线性回归、逻辑回归&#xff0c;决策树&#xff0c;向量机SVM&#xff0c;KNN-近邻&#xff0c;朴素贝叶斯&#xff0c;K-means&#xf…...

机器学习数学基础:21.特征值与特征向量

一、引言 在现代科学与工程的众多领域中&#xff0c;线性代数扮演着举足轻重的角色。其中&#xff0c;特征值、特征向量以及相似对角化的概念和方法&#xff0c;不仅是线性代数理论体系的核心部分&#xff0c;更是解决实际问题的有力工具。无论是在物理学中描述系统的振动模式…...

Android Studio2024版本安装环境SDK、Gradle配置

一、软件版本&#xff0c;安装包附上 &#x1f449;android-studio-2024.1.2.12-windows.exe&#x1f448; &#x1f449;百度网盘Android Studio安装包&#x1f448; &#xff08;若下载连链接失效可去百度网盘链接下载&#xff09; 二、软件安装过程 ​ ​ ​ 三、准备运行…...