Spring入门学习

news2024/10/2 22:18:00

Spring入门学习

文章目录

  • Spring入门学习
    • Spring概述
    • Spring Framework
    • IOC
      • IOC容器
        • DI
    • IOC容器的实现类
      • ①FileSystemXmlApplicationContext
      • ②ClassPathXmlApplicationContext
    • 基于XML管理bean
      • 入门案例
      • 创建类
      • 创建xml
      • 在Spring配置文件中配置bean
      • 测试

Spring概述

Spring 是最受欢迎的企业级 Java 应用程序开发框架.

Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。

Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应

用程序是需要扩展的。

Spring Framework

Spring 基础框架,可以视为 Spring 基础设施,基本上任何其他 Spring 项目都是以 Spring Framework为基础的。

IOC

IOC容器

IOC:Inversion of Control,反转控制

反转控制:说的就是资源获取的方式,然后我们之前需要获取某个资源或者某个对象的时候,我们需要手动的去创建它,手动的去访问它,访问其中的各种方法,但是我们有了Spring之后,就可以把这个对象管理权,对象的控制权完全的交给IOC容器,以前是主动获取,而现在是被动接受Spring为我们提供的对象(说白了以前我们需要创建,现在Spring为我们提供什么,我们就用什么)

DI

DI:Dependency Injection,依赖注入

其实就是IOC的一个实现,可以认为IOC是一种思想,DI就是IOC的一种表现方式,一种实现方式。

依赖注入:就是把当前提前设置好的方式来被动的接受IOC容器为我们所注入的对象(说白了就是为我们当前,Spring所管理的对象的属性进行赋值 )

IOC容器的实现类

①FileSystemXmlApplicationContext

它是通过我们的文件系统中的xml来获取我们的IOC容器(从我们的磁盘开始访问,比如从D:\...\Xx.xml文件,当前工程不一定在本台电脑使用,这个磁盘路径只是对于我电脑对应的路径)

②ClassPathXmlApplicationContext

通过我们当前的类路径下的一个xml来获取IOC容器(对于我们的工程来说,一般都是写在我们的类路径下的,因为它是针对当前工程的路径来加载的,配置文件一般都放在resources下,那也就是说resources下的内容一定会被加载到我们的类路径下的)

基于XML管理bean

入门案例

在maven中引入Spring依赖

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.1</version>
</dependency>

创建类

public void sayHelloWord(){
        System.out.println("hello , Spring");
    }

创建xml

把xml创建在resources下

在这里插入图片描述

在这里插入图片描述

在Spring配置文件中配置bean

bean:配置一个bean对象,将对象交给IOC容器管理

id:bean的唯一标识,不能重复

class:设置bean对象所对应的类型

<bean id="helloWord" class="com.ch.spring.helloWord"></bean>

测试

@Test
public void textHelloWord(){
    //获取IOC容器
    ApplicationContext ioc= new ClassPathXmlApplicationContext("applicationContext.xml");
    //获取IOC容器中的bean
    helloWord helloWord = (helloWord)ioc.getBean("helloWord");
    helloWord.sayHelloWord();
}

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

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

相关文章

利用飞书来实现信息存储和在线远程预览

利用飞书来实现信息存储和在线远程预览 文章目录利用飞书来实现信息存储和在线远程预览1. 需求2. 实现方法2.1 创建表格2.2 创建飞书捷径2.3 客户端上传数据3. 实现远程预览1. 需求 在传统的远程监控和存储数据的项目中&#xff0c;我们需要一台有公网IP的服务器来存储设备发上…

75V的TVS二极管有哪些型号?常用的

瞬态抑制TVS二极管工作峰值反向电压最低3.3V&#xff0c;最高可达513V&#xff0c;甚至更高。很多电子工程师都知道&#xff0c;TVS二极管在实际应用选型过程中&#xff0c;第一步要确认的就是其工作峰值反向电压。2023年春节已过&#xff0c;东沃电子正月初八就开工了&#xf…

【JavaEE】多线程代码实例:单例模式与阻塞队列BlockingQueue

目录 单例模式&#xff1a; 什么是单例模式&#xff1f; 单例模式的实现方式&#xff1a; 饿汉模式&#xff1a; 懒汉模式&#xff1a; 基于并发编程对单例模式线程安全问题的讨论&#xff1a; 阻塞队列&#xff1a; 标准库中的阻塞队列&#xff1a; 自实现阻塞…

CPP2022-计算机类-期末考试

6-1 判断素数 分数 5 全屏浏览题目 切换布局 作者 李国瑞 单位 东北大学秦皇岛分校 设计一个函数&#xff0c;判断输入数据是否为素数&#xff0c;返回bool类型结果。 函数接口定义&#xff1a; bool prime(int num); 说明&#xff1a;num为正整数。 裁判测试程序样例&…

基于node.js+vue+mysql考研辅导学习打卡交流网站系统vscode

语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;VScode 主要功能包括管理员&#xff1a;首页、个人中心、用户管理、每日打卡管理、考研学校管理、考研专业管理、直通车管理、学习教材管理、…

云平台搭建实例

嗨嗨&#xff0c;每天一更是不是很奈斯&#xff1f;我也觉得&#xff0c;昨天晚上我学校的老师借一天一千的设备&#xff0c;只能用七天&#xff0c;所以我拿出来给你们没有设备和刚用设备的看看吧。操作&#xff1a;首先我们将云平台安装好后&#xff0c;插上网线&#xff0c;…

手机截图如何提取文字?

在当今信息爆炸的时代&#xff0c;图文并茂已经成为了一个广告宣传的常用方式。然而&#xff0c;图片中的文字信息往往难以获取&#xff0c;尤其对于那些需要快速获取信息的人们来说&#xff0c;阅读图片中的文字会是一项繁琐且费时的任务。现在&#xff0c;我们有一个好消息要…

C语言的期末复习

&#x1f308;博客主页&#xff1a;卿云阁 &#x1f48c;欢迎关注&#x1f389;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f31f;本文由卿云阁原创&#xff01; &#x1f64f;作者水平很有限&#xff0c;如果发现错误&#xff0c;请留言轰炸哦&#xff01;万分感谢&a…

数据结构:链表基础OJ练习+带头双向循环链表的实现

目录 一.leetcode剑指 Offer II 027. 回文链表 1.问题描述 2.问题分析与求解 (1) 快慢指针法定位链表的中间节点 (2) 将链表后半部分进行反转 附:递归法反转链表 (3) 双指针法判断链表是否回文 二.带头双向循环链表的实现 1.头文件 2.节点内存申请接口和链表初始化接口…

virtuoso数据库介绍

在国内&#xff0c;对海量 RDF 数据的管理有着迫切的实际需求&#xff1b; RDF&#xff1a;Resource Description Framework&#xff0c;是一个使用XML语法来表示的资料模型(Data model)&#xff0c;用来描述Web资源的特性&#xff0c;及资源与资源之间的关系。 Virtuoso可以对…

今天正式上线!虹科汽车免拆诊断云展厅:感受精准修车魅力,畅享汽修领先技术

『虹科汽车免拆诊断云展厅』 2月15日正式上线&#xff01; 在这里&#xff0c;您可以参观了解&#xff1a; 虹科Pico汽车示波器产品模型 全流程专业讲解的视频资料 产品功能和应用场景 全面详细的产品手册 还有虹科首席技术工程师在线连麦答疑&#xff01;&#xff01;&#xf…

硬核!2023最全Java面试八股文,覆盖市面上80%以上的面试考点

就目前大环境来看&#xff0c;跳槽成功的难度比往年高很多。一个明显的感受&#xff1a;今年的面试&#xff0c;无论一面还是二面&#xff0c;都很考验 Java 程序员的技术功底。这不马上又到了面试跳槽的黄金段&#xff0c;成功升职加薪&#xff0c;不成功饱受打击。当然也要注…

影像测量设备都有什么?有哪些影像仪器?

影像测量仪器是广泛应用于机械、电子、仪表的仪器。主要由机械主体、标尺系统、影像探测系统、驱动控制系统和测量软件等与高精密工作台结构组成的光电测量仪器。一般分为三大类&#xff1a;手动影像仪、自动影像仪和闪测影像仪。测量元素主要有&#xff1a;长度、宽度、高度、…

【C语言技能树】浮点数在内存中的存储

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

CSDN每日一练:小豚鼠搬家

题目名称&#xff1a;小豚鼠搬家 时间限制&#xff1a;1000ms内存限制&#xff1a;256M 题目描述 小豚鼠排排坐。 小艺酱买了一排排格子的小房子n*m&#xff0c;她想让k只小豚鼠每只小豚鼠都有自己的房子。 但是为了不浪费空间&#xff0c;她想要小房子的最外圈尽量每行每列都有…

TCP/IP网络编程——多种 I/O 函数

完整版文章请参考&#xff1a; TCP/IP网络编程完整版文章 文章目录第 13 章 多种 I/O 函数13.1 send & recv 函数13.1.1 Linux 中的 send & recv13.1.2 MSG_OOB&#xff1a;发送紧急消息13.1.3 紧急模式工作原理13.1.4 检查输入缓冲13.2 readv & writev 函数13.2.1…

深入探讨软件定义架构及其意义

在上期文章中&#xff0c;我们了解了现代GNSS模拟中的软件定义架构&#xff0c;并与传统架构进行了对比&#xff0c;本期文章中我们将继续深入探讨软件定义架构及其意义。所谓软件定义架构&#xff0c;其实是用软件去定义系统的功能&#xff0c;用软件给硬件赋能&#xff0c;最…

07 分布式事务Seata使用(2)

1、Seata是什么 Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。AT模式是阿里首推的模式,阿里云上有商用版本的GTS&#x…

win10 安装 vs2015(社区版本)以及opencv-4.5.5

一、下载vs2015以及opencv-4.5.5从https://msdn.itellyou.cn/ 网站下载vs2015&#xff08;社区版本&#xff09;从https://opencv.org/releases/网站下载opencv-4.5.5二、安装vs2015和opencv-4.5.5解压后双击exe安装文件&#xff0c;完成安装&#xff08;默认&#xff09;双击下…

9.Docker Swarm

Docker Swarm 基本概念 Swarm是使用SwarmKit构建的 Docker 引擎内置&#xff08;原生&#xff09;的集群管理和编排工具。Docker Swarm是 Docker 官方三剑客项目之一&#xff0c;提供 Docker 容器集群服务&#xff0c;是 Docker 官方对容器云生态进行支持的核心方案。 使用它…