Spring系统学习——持续更新

news2025/2/20 15:19:10

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>

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

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

相关文章

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编…

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…

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…

基于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 系…

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

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