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

Spring入门学习

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容器中的beanhelloWord helloWord = (helloWord)ioc.getBean("helloWord");helloWord.sayHelloWord();
}

相关文章:

Spring入门学习

Spring入门学习 文章目录Spring入门学习Spring概述Spring FrameworkIOCIOC容器DIIOC容器的实现类①FileSystemXmlApplicationContext②ClassPathXmlApplicationContext基于XML管理bean入门案例创建类创建xml在Spring配置文件中配置bean测试Spring概述 Spring 是最受欢迎的企业级…...

webpack(4版本)使用

webpack简介&#xff1a;webpack 是一种前端资源构建工具&#xff0c;一个静态模块打包器(module bundler)。在 webpack 看来, 前端的所有资源文件(js/json/css/img/less/...)都会作为模块处理。它将根据模块的依赖关系进行静态分析&#xff0c;打包生成对应的静态资源(bundle)…...

Linux安装ElasticSearch

下载地址&#xff1a;https://www.elastic.co/cn/downloads/past-releases#elasticsearch 1 版本选择 ElasticSearch 7 及以上版本都是自带的 jdk&#xff0c;假如需要配置指定的 jdk 版本的话&#xff0c;可以在 es 的 bin 目录下找到elasticsearch-env.bat 这个文件&#x…...

Linux中C语言编程经验总结

​ 修改记录 版本号日期更改理由V1.02022-03-15MD化 总则 仅总结一些常用且实用的编程规范和技巧&#xff0c;且避免记忆负担&#xff0c;聚焦影响比较大的20% ! 编译器 打开全warning编译器开关 正例 gcc -W -Wall -g -o someProc main.c反例 gcc -g -o someProc main…...

jvisualvm工具使用

jdk自带的工具jvisualvm&#xff0c;可以分析java内存使用情况&#xff0c;jvm相关的信息。 1、设置jvm启动参数 设置jvm参数**-Xms20m -Xmx20m -XX:PrintGCDetails** 最小和最大堆内存&#xff0c;打印gc详情 2、测试代码 TestScheduleClassGc package com.core.schedule;…...

redis五大IO网络模型、内存回收

目录1.0用户空间和内核态空间1.1 网络模型-阻塞IO1.2 网络模型-非阻塞IO1.3 网络模型-IO多路复用1.3.1 网络模型-IO多路复用-select方式1.3.2 网络模型-IO多路复用模型-poll模式1.3.3 网络模型-IO多路复用模型-epoll函数1.3.4 网络模型-epoll中的ET和LT1.3.5 网络模型-基于epol…...

【C/C++】内存管理详解

目录内存布局思维导图1.C/C内存分布数据段&#xff1a;栈&#xff1a;代码段&#xff1a;堆:2.C语言中动态内存管理方式3.C内存管理方式3.1new/delete操作内置类型3.2new和delete操作自定义类型4.operator new 与 operator delete函数5.new和delete的实现原理5.1内置类型5.2自定…...

Android ProcessLifecycleOwner 观察进程生命周期

文章目录简介使用依赖用法1&#xff0c;结合 LiveData用法2&#xff0c;获取 owner的 lifecycle 实例&#xff0c;并对 lifecycle 添加观察者简介 ProcessLifecycleOwner 直译&#xff0c;就是&#xff0c;进程生命周期所有者。 通过 DOC 注释了解到&#xff1a; Lifecycle.E…...

如何编写一个 npm 插件?

提到写 npm 插件&#xff0c;很多没搞过的可能第一感觉觉得很难&#xff0c;无从下手&#xff0c;其实不然。 我们甚至写个简单的 console.log(hello word)&#xff0c;都是可以当成一个插件发布上去的。 其实无从下手的主要难点还是在于你的具体要做的功能逻辑&#xff0c;这…...

mapstruct- 让VO,DTO,ENTITY转换更加便捷

mapstruct- 让VO&#xff0c;DTO&#xff0c;ENTITY转换更加便捷 1. 简介 MapStruct是一个代码生成器&#xff0c;简化了不同的Java Bean之间映射的处理&#xff0c;所谓映射指的就是从一个实体变化成一个实体。例如我们在实际开发中&#xff0c;DAO层的实体和一些数据传输对…...

IAR警告抑制及还原

工作中需要临时抑制 警告 Pa084&#xff0c;源代码如下&#xff1a; sy_errno_t sy_memset_s(void *dest, sy_rsize_t dmax, int value, sy_rsize_t n) { sy_errno_t err; if (dest NULL) { return SY_ESNULLP; } if (dmax > SY_RSIZE…...

工厂模式(Factory Pattern)

1.什么是工厂模式 定义一个创建对象的接口&#xff0c;让其子类自己决定实例化哪一个工厂类&#xff0c;工厂模式使其创建过程延迟到子类进行。 2.工厂模式的作用 实现创建者和调用者的分离 3.工厂模式的分类 简单工厂模式工厂方法模式抽象工厂模式 4.工厂模式的优缺点 优…...

JavaScript语法学习--《JavaScript编程全解》

《JavaScript编程全解》 JavaScript琐碎基础 0.前言 1.RN: react native是Facebook于2015年4月开源的跨平台移动应用开发框架&#xff0c;是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物&#xff0c;支持iOS和安卓两大平台。 2.ts与js js&#xff1a;是弱…...

linux安装极狐gitlab

1. 官网寻找安装方式 不管我们使用任何软件&#xff0c;最靠谱的方式就是查看官方文档。gitlab提供了相应的安装文档&#xff0c;并且有对应的中文文档。地址如下&#xff1a; https://gitlab.cn/install/ 我在这里以CentOS作为安装示例&#xff0c;大家可根据自己的需要选择…...

软考高级信息系统项目管理(高项)原创论文——人力资源管理

人力资源管理 某市某国有装备制造公司智能安防信息管控平台项目是在公司推进企业信息化进程和实现企业可持续发展的背景下于2016年8月提出来的,我公司积极应标并最终顺利中标,而我有幸被任命为项目经理,担任起该项目的管理工作。该项目投资金额为530万元,其中软件部分为360…...

Java Lambda表达式 匿名内部类 函数式接口(FunctionalInterface)

Java Lambda表达式定义背景示例匿名类实现Lambda表达式实现对比匿名类和Lambda实现Lambda表达式&#xff08;调用&#xff09;说明Lambda表达式的语法Java 1.8 新特性&#xff1a;函数式接口jdk 1.8 自带的函数式接口 &#xff08;举例&#xff09;定义 参考Oracle官网&#x…...

javaEE 初阶 — 流量控制与拥塞控制

文章目录1. 流量控制2. 拥塞控制TCP 工作机制&#xff1a;确认应答机制 超时重传机制 连接管理机制 滑动窗口 1. 流量控制 流量控制是一种干扰发送的窗口大小的机制&#xff0c;滑动窗口&#xff0c;窗口越大&#xff0c;传输的效率就越高&#xff08;一份时间&#xff0c;…...

HTML自主学习 - 2

一、表格 基本语法 <table><tr><td>单元格内容1</td><td>单元格内容2</td><td>单元格内容3</td></tr></table> 1、<table> </table>标签用于定义表格 2、<tr> </tr>标签用于定义表格的…...

【转载】通过HAL库实现MODBUS从机程序编写与调试-----STM32CubeMX操作篇

通过HAL库实现MODBUS从机程序编写与调试-----STM32CubeMX操作篇[【STM32】RS485 Modbus协议 采集传感器数据](https://blog.csdn.net/qq_33033059/article/details/106935583)基于STM32的ModbusRtu通信--ModbusRtu协议(一)基于STM32的ModbusRtu通信--终极Demo设计(二)STM32RS48…...

【C++】string类(上)

文章目录1.为什么要学习string类2.标准库中的string类1.string分类2.string类对象的常见构造1.string3. string类对象的容量操作1.size2.capacity3.reserve4.resize扩容初始化删除数据4. string类对象的修改操作1.push_back2.append3.operator1.为什么要学习string类 c语言的字…...

FlowState Lab生成对抗网络(GAN)模式探究:创造极致逼真的模拟数据

FlowState Lab生成对抗网络&#xff08;GAN&#xff09;模式探究&#xff1a;创造极致逼真的模拟数据 1. 引言&#xff1a;当AI学会"造假" 想象一下&#xff0c;你面前有两组数据&#xff1a;一组来自真实世界的传感器采集&#xff0c;另一组由AI生成。它们看起来几…...

Wan2.2-I2V-A14B部署教程:解决端口冲突/驱动报错/加载失败全方案

Wan2.2-I2V-A14B部署教程&#xff1a;解决端口冲突/驱动报错/加载失败全方案 1. 环境准备与快速部署 1.1 硬件与系统要求 在开始部署前&#xff0c;请确保您的设备满足以下最低配置要求&#xff1a; 显卡&#xff1a;RTX 4090D 24GB显存&#xff08;必须匹配&#xff09;内…...

机器人抓手设计必看:用CATIA有限元分析确保Base板刚度的5个关键步骤

机器人抓手设计进阶指南&#xff1a;CATIA有限元分析在Base板刚度优化中的实战应用 在工业自动化领域&#xff0c;机器人抓手的性能直接影响生产效率和产品质量。作为承载整个抓取机构的核心部件&#xff0c;Base板的设计不仅需要考虑强度&#xff0c;更要确保足够的刚度以避免…...

AI科学发现新范式!NSR综述知识图谱应用全解(非常详细),从入门到精通,收藏这一篇就够了!

在生物、化学、材料等数据密集型科学领域&#xff0c;海量实验数据与文献知识不断积累&#xff0c;但这些知识往往分散在不同数据库与研究论文中&#xff0c;难以被系统整合与有效利用。科学知识图谱&#xff08;Scientific Knowledge Graphs, SciKGs&#xff09;通过结构化方式…...

AIGlasses OS Pro 模型优化实战:针对STM32F103C8T6的轻量化模型部署

AIGlasses OS Pro 模型优化实战&#xff1a;针对STM32F103C8T6的轻量化模型部署 最近有不少朋友在问&#xff0c;像AIGlasses OS Pro里那些能看懂世界的视觉模型&#xff0c;能不能塞进一个成本几十块钱、资源极其有限的单片机里跑起来&#xff1f;比如大家手头都有的那块“蓝…...

FunASR与ModelScope语音识别集成实战:从零到部署的完整指南

FunASR与ModelScope语音识别集成实战&#xff1a;从零到部署的完整指南 语音识别技术正在改变我们与设备交互的方式&#xff0c;而FunASR与ModelScope的结合让开发者能够快速构建高质量的语音应用。本文将通过全新的视角&#xff0c;带你体验从模型获取到实际部署的全过程&…...

自媒体人利器:OpenClaw+百川2-13B自动生成短视频脚本

自媒体人利器&#xff1a;OpenClaw百川2-13B自动生成短视频脚本 1. 为什么需要自动化脚本生成工具 作为一个每天需要产出3-5条短视频的自媒体创作者&#xff0c;我经常陷入创意枯竭和重复劳动的困境。传统的工作流程需要手动搜索热点、构思脚本、撰写分镜&#xff0c;这个过程…...

CogVideoX LoRA微调终极指南:用消费级GPU打造个性化视频生成模型

CogVideoX LoRA微调终极指南&#xff1a;用消费级GPU打造个性化视频生成模型 【免费下载链接】CogVideo text and image to video generation: CogVideoX (2024) and CogVideo (ICLR 2023) 项目地址: https://gitcode.com/GitHub_Trending/co/CogVideo 你是否曾经梦想过…...

禅修Debug大法:面对屎山先冥想三小时

——测试工程师的认知重构与系统破局指南第一章 祖传系统的测试困局&#xff1a;当屎山遇见测试用例1.1 屎山系统的四大典型特征熵增陷阱15年以上的迭代系统普遍呈现指数级增长的代码复杂度。行业数据显示&#xff0c;超过60%的祖传系统每月新增代码的耦合度递增12%&#xff0c…...

UniApp真机调试支付宝扫码,从‘报错’到‘跑通’的完整避坑指南

UniApp真机调试支付宝扫码&#xff1a;从报错到流畅运行的实战指南 第一次在UniApp中集成支付宝原生扫码功能时&#xff0c;我遇到了一个令人抓狂的问题——明明在模拟器上运行得好好的&#xff0c;一到真机调试就各种报错。经过反复尝试和查阅文档&#xff0c;终于找到了问题的…...