spring-第三章 spring入门程序

devtools/2024/10/15 14:29:13/

spring_0">spring


文章目录

  • spring
  • 前言
  • 1.依赖引入
    • 1.1依赖包介绍
    • 1.2基础依赖引入
  • 2.IOC功能使用
    • 2.1xml文件
      • 2.1.1bean**标签介绍**
      • 2.1.2配置实例
    • 2.2使用bean
      • 2.2.1获取IOC容器
      • 2.2.2获取bean对象
  • 3.补充说明
  • 4.开启log4j2日志
    • 4.1引入依赖
    • 4.2配置文件
    • 4.3使用日志
  • 总结


前言

这篇文章中我们简单看看spring是如何使用的。


1.依赖引入

1.1依赖包介绍

我们使用maven引入spring的依赖包,第二章中的各个模块都有其依赖jar包可以导入。
命名方式为:spring-模块名
例如:
请添加图片描述

1.2基础依赖引入

要使用spring的IOC功能,只要引入context包即可,因为context包依赖core包,core包又依赖其他包,依靠maven中的依赖继承,可以自动导入其他需要的包。
请添加图片描述

请添加图片描述

2.IOC功能使用

2.1xml文件

2.1.1bean标签介绍

前面说过spring管理的对象称为bean,这里我们需要在xml文件中配置bean,我们需要配置spring可以管理那些对象,这些对象之间又是什么关系。
一个bean对应一个bean标签,而标签中可以有各种属性,这里先知道两个id、class:

  • id:每个bean的唯一标识
  • class:类路径,指定管理哪个类为bean

2.1.2配置实例

这里我们将一个类配置给spring管理,后面就可以从spring中获取改类的一个实例。
请添加图片描述

2.2使用bean

我们已经配置将已有的User类管理为bean,那么我现在要让Spring的IOC容器来创建一个User对象给我。

2.2.1获取IOC容器

要从容器中获取bean,先要获取容器:
请添加图片描述

ApplicationContext是一个接口,也是我们要获取的容器,既然是接口,就说明它有不同的实现类,使用不同的实现类就相对于使用不同的方法获取容器。上图用的ClassPathXmlApplicationContext只是实现类之一,还可以使用其他实现类来获取容器。

2.2.2获取bean对象

获取到容器对象后可以从容器中获取到bean对象,调用getBean()方法并传入id作为参数
请添加图片描述

3.补充说明

  • bean标签的id不可以重复
  • 默认情况下spring通过反射来调用类的无参构造器来完成实例化
  • 底层使用Map集合存储这些bean对象,key是id属性值,value是对应的实例对象
  • xml文件的名称不做限制,可任意
  • 可以拥有多个xml配置文件,并放到一起获取容器
  • bean可以是自定义的类,也可以是其他包中的类
  • getBean()方法有一个重载形式,可以额外传入类的class对象,直接完成返回值的转换操作

请添加图片描述

  • 使用FileSystemXmlApplicationContext(“绝对路径”)可以从指定位置加载xml配置文件,用于xml不存放在项目中的情况下。
  • ApplicationContext接口有一个最顶级接口BeanFactory就是我们常说的bean工厂,也就是说IOC容器底层使用工厂模式来生产实例。

请添加图片描述

  • IOC容器底层使用XML解析+工厂模式+反射机制实现
  • 创建容器时就会实例化好bean对象

4.开启log4j2日志

spring6框架支持集成log4j2框架。

4.1引入依赖

请添加图片描述

4.2配置文件

请添加图片描述

4.3使用日志

需要创建日志对象,并用日志对象输出信息。
请添加图片描述


总结

这里我们简单演示了一下如何使用spring框架,只是了解流程,每一步都在后面章节有详细说明。


http://www.ppmy.cn/devtools/126204.html

相关文章

【算法——递归回溯】

这个东西还是很重要的&#xff0c;直接决定了你的动态规划章节的学习深度 78. 子集 方法1&#xff1a; vector<vector<int>>V; void dfs(vector<int> v,vector<int> nums,int index) {if(indexnums.size()) V.push_back(v);else{v.push_back(nums[i…

【获取简易网页存储的密码】

拜访客户&#xff0c;电脑端连上客户的访客网络后&#xff0c;发现手机还没连&#xff0c;同时网页上的密码被隐藏显示了&#xff0c;自己也忘了访客密码是多少了。这种安全性要求不高的网页隐藏密码如何查看&#xff1a; 1.如下&#xff0c;电脑连上了网络&#xff0c;但自己…

Linux 常用命令 - file 【识别文件类型】

简介 file 命令源自英语单词 “file”&#xff0c;直译为“文件”。在 Linux 系统中&#xff0c;file 命令用于确定文件类型。它通过检查文件的内容和某些情况下的文件头信息&#xff0c;来判断文件的具体类型&#xff08;如文本、二进制、执行文件等&#xff09;。 使用方式…

Pyspark中pyspark.sql.functions常用方法(1)

文章目录 pyspark sql functions&#xff08;1&#xff09;spark.rangecol alias columnlit 创建常量列broadcast 广播表coalesce 合并列 (none)isnan 判断nan值isnull 判断None值nanvl 合并列 &#xff08;nan&#xff09;udf 自定义函数rand 随机列 &#xff0c;randn 随机正…

嵌入式Linux开发板配置静态IP

嵌入式Linux开发板配置静态IP Chapter1 嵌入式Linux开发板配置静态IPChapter2 Linux命令之hwclock - 查询和设置硬件时钟 Chapter1 嵌入式Linux开发板配置静态IP 修改interfaces配置文件&#xff0c;普通用户interfaces文件权限只可读&#xff0c;首先切换到root权限。 sudo …

理解python中的变量

在 C 中&#xff0c;引用是某个变量的别名&#xff0c;一旦引用被初始化&#xff0c;就不能更改引用的目标。引用和原始变量指向的是同一个内存位置&#xff0c;不允许重新绑定。而 Python 的变量更像是指针或标签&#xff0c;可以在运行时重新指向不同的内存位置&#xff0c;即…

kubeadm 搭建k8s 1.28.2版本集群

kubeadm 搭建k8s 1.28.2版本集群 1、kubuadm介绍&#xff1a; kubeadm 是官方社区推出的一个用于快速部署kubernetes 集群的工具&#xff0c;这个工具能通过两条指令完成一个kubernetes 集群的部署&#xff1a; 创建一个Master 节点kubeadm init将Node 节点加入到当前集群中…

JavaScript全面指南(五)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;JavaScript篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来JavaScript篇专栏内容:JavaScript全面指南 目录 81、ES6 class关键字原理跟function什么区别 82、如何检…