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

【第一章:Spring概述、特点、IOC容器、IOC操作bean管理(基于xml方式)】

第一章:Spring概述、特点、IOC容器、IOC操作bean管理(基于xml方式)

1.Spring是什么?
①Spring是一款主流的java EE 轻量级开源框架。
②广义的Spring:Spring技术栈,Spring不再是一个单纯的应用框架,而是逐渐发展成由多个不同子项目组成的成熟技术。例如:Spring Framework、SpringMVC,SpringBoot等。
③狭义的Spring:特指Spring Framework。Spring框架是一个分层的、面向切面编程的java应用程序,有两个核心模块Ioc和AOP。
④Ioc:控制反转,把创建对象过程交给Spring进行管理。
⑤AOP:面向切面编程。不修改源代码进行功能的增强。
2.Spring特点:
①方便解耦,简化开发。
②AOP编程的支持。
③方便程序的测试。
④方便集成各种优秀框架。
⑤降低Java API开发难度。
⑥方便进行事务操作。
3.IOC容器:
(1)什么是IOC:
①控制反转,把对象的创建和对象之间调用的过程,交给spring处理。
②使用IOC的目的:为例耦合度降低。
(2)IOC底层原理:
①XML解析、工厂模式、反射。
②IOC容器底层就是对象工厂。
③spring提供IOC容器实现的两种方式(两个接口)
BeanFactory:IOC容器基本实现,是spring内部的使用接口,不提供开发人员进行使用(加载配置文件的时候不会创建对象,在获取/使用对象的时候才去创建对象)。
ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用(加载配置文件的时候就会把在配置文件中的对象创建)。
④ApplicationContext接口实现类:
FileSystemXmlApplicationContext和ClassPathXmlApplicationContext
在这里插入图片描述4.IOC操作bean管理:
①bean管理指的是两个操作:spring创建对象;spring注入属性。
②bean管理操作有两种方式:基于XML配置文件方式实现;基于注解方式实现。
5.IOC操作bean管理(基于XML方式):
1)基于XML创建对象:

 <bean id="user" class="spring1.User"></bean>

①在spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建。
②在bean标签中有很多属性,介绍常用属性:

id属性:唯一标识
class属性:类的全路径(包和类的路径)
name属性:和id属性一样,name属性内容可以加特殊符号

③创建对象的时候,默认也是执行无参构造方法,完成对象创建。
(2)基于XML方式注入属性:
①DI:依赖注入,就是注入属性。(DI是IOC中一种具体实现,称为依赖注入,就是注入属性。注入属性要在创建对象的基础之上注入)
第一种方式:set方式注入。
1.创建属性和属性对应的set方法;

	 //1.创建属性private  String bname;private String bauthor;//2.创建属性对应的set方法public void setBname(String bname) {this.bname = bname;}public void setBauthor(String bauthor) {this.bauthor = bauthor;}

2.在spring配置文件配置对象创建,配置属性注入。

 <bean id="book" class="spring1.Book" ><!--使用property完成属性注入name:类里面的属性名称value:向属性注入的值--><property name="bname" value="java从入门到精通"></property><property name="bauthor" value="宋红康"></property></bean>
@Testpublic void testBook1(){//1.加载spring配置文件ApplicationContext applicationContext=new ClassPathXmlApplicationContext("bean1.xml");//2.获取配置创建的对象Book book = applicationContext.getBean("book", Book.class);System.out.println(book);book.testDemo();}

第二种注入方式:使用有参数的构造器注入。
1.创建类,定义属性,创建属性对应有参的构造方法;

public class Orders {private String oname;private  String address;public Orders(String oname, String address) {this.oname = oname;this.address = address;}
}

2.在spring配置文件中配置。

<!--有参构造注入属性--><bean id="orders" class="spring1.Orders"><constructor-arg name="oname" value="电脑"></constructor-arg><constructor-arg name="address" value="中国"></constructor-arg></bean>
 @Testpublic void testOrders(){//1.加载spring配置文件ApplicationContext applicationContext=new ClassPathXmlApplicationContext("bean1.xml");//2.获取配置创建的对象Orders orders = applicationContext.getBean("orders", Orders.class);System.out.println(orders);orders.orderTest();}

相关文章:

【第一章:Spring概述、特点、IOC容器、IOC操作bean管理(基于xml方式)】

第一章&#xff1a;Spring概述、特点、IOC容器、IOC操作bean管理&#xff08;基于xml方式&#xff09; 1.Spring是什么&#xff1f; ①Spring是一款主流的java EE 轻量级开源框架。 ②广义的Spring&#xff1a;Spring技术栈&#xff0c;Spring不再是一个单纯的应用框架&#x…...

CSS变量

前端的开发工作中&#xff0c;CSS 是不可或缺的部分&#xff1b;实际工作中&#xff0c;我们通过JavaScript 来进行数据和交互工作&#xff0c;CSS 为用户呈现可视化的界面。有时&#xff0c;CSS 来进行部分交互效果是不是会比 JavaScript 更高效、更省事呢&#xff1f; 一、变…...

.net7窗口编程c#2022实战(1)-zip压缩精灵(1)

目录 创建ZIP精灵项目拖控件OpenFileDialog 类压缩与解压缩编写我们自己的代码其它参考内容创建ZIP精灵项目 VS2022中新建项目。 为窗体取一个标题名称 拖控件 左边工具栏里选择控件 拖三个按钮控件和一个listbox控件...

云计算|OpenStack|使用VMware安装华为云的R006版CNA和VRM

前言&#xff1a; FusionCompute架构 (CNA、VRM) CNA(ComputingNode Agent):计算节点代理VNA虚拟节点代理&#xff0c;部署在CNA上&#xff0c;实施计算、存储、网络的虚拟化的配置管理。VRM(Virtual Resource Manager):虚拟资源管理器 VNA可以省略不安装 本次实验使用的是V…...

中央一号文件首提“即时零售”,县域掀起消费业态新风潮

经过几年的探索&#xff0c;即时零售已经逐步走向成熟&#xff0c;并开始向三四线城市以及乡镇城市渗透。 过去一年&#xff0c;京东、美团、阿里争先布局即时零售市场&#xff0c;完善即时配送网络、培养用户消费习惯&#xff0c;即时零售订单迎来了骤增。2022年下半年&#…...

python多线程编程

Python多线程编程中常用方法&#xff1a; 1、join()方法&#xff1a;如果一个线程或者在函数执行的过程中调用另一个线程&#xff0c;并且希望待其完成操作后才能执行&#xff0c;那么在调用线程的时就可以使用被调线程的join方法join([timeout]) timeout&#xff1a;可选参数…...

小熊电器:精品与创意,走上“顶流之路”的两把“宝剑”

回顾2022年&#xff0c;小家电市场降温趋势明显&#xff0c;业绩表现整体低迷&#xff0c;如主打高端路线的北鼎&#xff0c;去年8亿元的营收出现个位数下滑&#xff0c;归母净利润同比下降超56%&#xff1b;苏泊尔营收也出现微降&#xff0c;归母净利润预计同比增长不到10%。而…...

如何描述元素与元素间的逻辑关系?

逻辑结构反映的是数据元素之间的关系&#xff0c;它们与数据元素在计算机中的存储位置无关&#xff0c;是数据结构在用户面前所呈现的形式。根据不同的逻辑结构来分&#xff0c;数据结构可分为集合、线性结构、树形结构和图形结构4种形式&#xff0c;接下来分别进行简要介绍。 …...

【3】linux命令每日分享——mv改名或移动

大家好&#xff0c;这里是sdust-vrlab&#xff0c;Linux是一种免费使用和自由传播的类UNIX操作系统&#xff0c;Linux的基本思想有两点&#xff1a;一切都是文件&#xff1b;每个文件都有确定的用途&#xff1b;linux涉及到IT行业的方方面面&#xff0c;在我们日常的学习中&…...

【2023最火教程】Python性能测试框架Locust实战教程(建议收藏)

01、认识Locust Locust是一个比较容易上手的分布式用户负载测试工具。它旨在对网站&#xff08;或其他系统&#xff09;进行负载测试&#xff0c;并确定系统可以处理多少个并发用户&#xff0c;Locust 在英文中是 蝗虫 的意思&#xff1a;作者的想法是在测试期间&#xff0c;放…...

深入浅出C++ ——手撕AVL树

文章目录前言一、AVL 树介绍二、AVL树节点的定义三、AVL树的插入四、AVL树的旋转五、AVL树的验证六、AVL树的删除七、AVL树的性能八、AVL树的实现前言 在前面的文章中介绍了map / multimap / set / multiset 容器&#xff0c;这几个容器的底层都是按照二叉搜索树来实现的。但是…...

将多个springboot项目的pom.xml文件整合

将多个springboot项目的pom.xml文件整合 0.0、前因 ​ 刚入公司敲代码时、发现一个项目中会包含多个子项目、每个子项目会代表一个功能模块、这属实是把我这个菜鸟惊叹到了。而这种分而治之的方式也引申出一个问题&#xff1a;各子项目的依赖如何统一管理&#xff1f; ​ 我…...

【Unity实战100例】Unity串口通讯的消息接收解析和发送指令

目录 一.串口通信介绍 1.串口通信 2.名词介绍 1.上位机: 2.下位机: 3.串行端口...

资源消耗降低 90%,速度提升 50%,解读 Apache Doris Compaction 最新优化与实现

背景LSM-Tree&#xff08; Log Structured-Merge Tree&#xff09;是数据库中最为常见的存储结构之一&#xff0c;其核心思想在于充分发挥磁盘连续读写的性能优势、以短时间的内存与 IO 的开销换取最大的写入性能&#xff0c;数据以 Append-only 的方式写入 Memtable、达到阈值…...

【Mysql】 锁

【Mysql】 锁 文章目录【Mysql】 锁1. 锁1.1 概述1.2 全局锁1.2.1 介绍1.2.2 语法1.2.2.1 加全局锁1.2.2.2 数据备份1.2.2.3 释放锁1.2.3 特点1.3 表级锁1.3.1 介绍1.3.2 表锁1.3.3 元数据锁1.3.4 意向锁1.4 行级锁1.4.1 介绍1.4.2 行锁1.4.3 间隙锁&临键锁1. 锁 1.1 概述…...

Android 流量统计

Android 流量统计最近项目上有一个应用流量统计的功能需要实现&#xff0c;在此总结一下 流量统计架构 在Android9.0之前&#xff0c;流量监控是基于xt_qtaguid模块的&#xff0c;通过读取/proc/net/xt_qtaguid/stats文件内容进行解析获取对应流量数据。 Android9.0之后&…...

如何保证数据的安全?对称和非对称加密,身份认证,摘要算法,数字证书等傻傻分不清?波哥图解带你彻底掌握

支付安全 1.基础概念 明文&#xff1a;加密前的消息叫“明文”&#xff08;plain text&#xff09; 密文&#xff1a;加密后的文本叫“密文”&#xff08;cipher text&#xff09; 密钥&#xff1a;只有掌握特殊“钥匙”的人&#xff0c;才能对加密的文本进行解密&#xff0c;…...

计算机网络概述

目录前言计算机网络的形成<font colorblue>计算机定义与分类计算机网络的定义计算机网络的分类1.按网络的覆盖范围分类2.按网络采用的传输技术分类按网络的拓扑分类计算机网络的组成计算机网络体系结构层次结构体系ISO/OSI 参考模型Tcp/ip体系结构这就是计算机网络的基础…...

小学生学Arduino---------点阵(二)动态图片以及文字

今天进阶了利用人眼视觉暂留原理制作动态的图片变换。 1、熟练掌握图片显示器的使用 2、创作多种动态图片、文字的显示 3、明确动态图片、文字显示过程 4、掌握图片显示器中清空指令的使用 5、搭建动态图片、文字的显示电路 6、编写动态图片、文字的程序 复习&#xff1a; 绘…...

【C语言】-程序编译的环境和预处理详解-让你轻松理解程序是怎么运行的!!

作者&#xff1a;小树苗渴望变成参天大树 作者宣言&#xff1a;认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; 程序的编译前言一、 程序的翻译环境和执行环境二、 详解翻译环境2.1编译环境2.1.1预编…...

MapBox动态气泡图渲染教程

先来看效果: 视频效果: 屏幕录制2023-02-22 15.34.57 首先我们来介绍一下思路。对于mapbox和openlayers这样的框架来讲,气泡图中的气泡本质上就是一个div,就是将一个dom元素追加到canvas上的固定位置而已。 在mapbox中有marker的概念,官网也有示例: Attach a popup to …...

在 Ubuntu18.04 上编译安装 GMP

&#xff08;2021.08.04&#xff09;最近为了安装 IBM 的开源项目 HElib C&#xff0c;需要在服务器上先安装GMP和NTL&#xff0c;NTL需要依赖GMP&#xff0c;所以先来安装一下GMP&#xff0c;记录一下在服务器上安装成功的过程&#xff1a;&#xff09; 直接安装libgmp二进制文…...

到底什么样的条件才能被浙大MBA录取?攻略集合

新一年管理类联考已悄然启动&#xff0c;很多考生把目标也都放在了浙江大学MBA项目上&#xff0c;那么浙江大学MBA项目好考吗&#xff1f;报考流程是怎样的&#xff1f;杭州达立易考教育在这里给大家汇总整理了浙大MBA项目相关资讯&#xff0c;分享给想要报考浙大MBA的同学&…...

Impacket工具使用

Impacket工具说明 Impacker是用户处理网络协议的Python类集合,用于对SAB1-3或IPv4/IPv6 上的TCP/UPD/ICMP/IGMP/ARP/IPv4/IPv6/SMB/MSRPC/NTLM/Kerberos/WMI/LDAP 等进行低级的编程访问,数据包可以从头开始构建,也可以从原始数据包中解析, 面向对象API使用处理协议的深层结构变…...

华为OD机试真题Python实现【RSA 加密算法】真题+解题思路+代码(20222023)

RSA 加密算法 题目 RSA 加密算法在网络安全世界中无处不在 它利用了极大整数因数分解的困难度,数据越大安全系数越高 给定了一个32位正整数,请对其进行因数分解 找出哪两个素数的乘积 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 ## 输…...

App.vue中读取不到路由的信息

问题&#xff1a; ​ 首先定义了一个路由&#xff0c;并且在路由元里面存储了一个变量&#xff0c;在App.vue里面访问这个变量的时候却显示undefined&#xff01;在路由对应的组件中却能访问到&#xff01; 定义的路由元信息&#xff1a; 为啥访问不到…,懵逼的我在App.vue里…...

Lambda表达式详解

文章目录1、Lambda表达式简介2、如何使用Lambda表达式3、在哪里使用Lambda表达式3.1 函数式接口3.2函数描述符4、四大核心函数式接口4.1 Predicate4.2 Consumer4.3 Function4.4 Supplier5、方法引用5.1 方法引用的使用情况6、构造器引用7、数组引用8、复合Lambda表达式的有用方…...

网关的通用设计框架

概念 网关&#xff0c;很多地方将网关比如成门&#xff0c; 没什么问题&#xff0c; 但是需要区分网关与网桥的区别。 网桥:工作在数据链路层&#xff0c;在不同或相同类型的LAN之间存储并转发数据帧&#xff0c;必要时进行链路层上的协议转换。可连接两个或多个网络&#xf…...

API 接口应该如何设计?如何保证安全?如何签名?如何防重?

说明&#xff1a;在实际的业务中&#xff0c;难免会跟第三方系统进行数据的交互与传递&#xff0c;那么如何保证数据在传输过程中的安全呢&#xff08;防窃取&#xff09;&#xff1f;除了https的协议之外&#xff0c;能不能加上通用的一套算法以及规范来保证传输的安全性呢&am…...

LeetCode-131. 分割回文串

目录题目思路回溯题目来源 131. 分割回文串 题目思路 切割问题类似组合问题。 例如对于字符串abcdef&#xff1a; 组合问题&#xff1a;选取一个a之后&#xff0c;在bcdef中再去选取第二个&#xff0c;选取b之后在cdef中再选取第三个…。切割问题&#xff1a;切割一个a之后&…...