Java【Spring】项目创建、存储和获取 Bean 的基本方式

文章目录

  • 前言
  • 一、创建 Spring 项目
    • 1, 创建 Maven 项目
    • 2, 添加 Spring 依赖
    • 3, 创建启动类
  • 二、存储 Bean 的基本方式
    • 1, 创建 Bean
    • 2, 存储 Bean
  • 三、获取 Bean 的基本方式
    • 1, 获取上下文对象
    • 2, 获取 Bean
    • 3, 使用 Bean
  • 总结


前言

各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你:
📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等
📗 Java数据结构: 顺序表, 链表, 堆, 二叉树, 二叉搜索树, 哈希表等
📘 JavaEE初阶: 多线程, 网络编程, TCP/IP协议, HTTP协议, Tomcat, Servlet, Linux, JVM等(正在持续更新)

在这里插入图片描述


提示:是正在努力进步的小菜鸟一只,如有大佬发现文章欠佳之处欢迎批评指点~ 废话不多说,直接上干货!

一、创建 Spring 项目

分为 3 步 :

  • 创建 Maven 项目
  • 引入 Spring 依赖
  • 添加启动类

1, 创建 Maven 项目

  • 在这里插入图片描述
    在这里插入图片描述

2, 添加 Spring 依赖

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.3.RELEASE</version></dependency>
</dependencies>
  • 把这段代码拷贝到 pom.xml 文件里
    在这里插入图片描述

3, 创建启动类

  • 启动类是用于启动整个项目, 其中应该包含 main 方法
    在这里插入图片描述

二、存储 Bean 的基本方式

1, 创建 Bean

  • Spring 中把类对象称作 Bean, 首先要创建一个 Bean
    在这里插入图片描述

2, 存储 Bean

  • 创建好了一个 Bean 之后, 需要把他注册到 Spring(IoC 容器) 中, 通过配置文件的方式注册
    在这里插入图片描述
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"></beans>
  • 使用标签在配置文件中, 将 Bean 注册到 Spring 里面在这里插入图片描述

三、获取 Bean 的基本方式

1, 获取上下文对象

  • 上下文对象包含了 Spring 容器存储的所有 Bean, 要想获取 Bean, 就需要从上下文对象中取
    在这里插入图片描述
  • 还可以使用另外一种(官方已经不推荐使用但是面试可能会考的)方式获取上下文对象
    在这里插入图片描述

面试题 : ApplicationContext 和 BeanFactory 的区别?

1, 继承关系和功能方面来说:Spring 容器有两个顶级的接口:BeanFactory 和 ApplicationContext。其中 BeanFactory 提供了基础的访问容器的能力,而 ApplicationContext 属于 BeanFactory 的子类,它除了继承了 BeanFactory 的所有功能之外,它还拥有更多独特的特性,还添加了对国际化支持、资源访问支持、以及事件传播等方面的支持
2,从性能方面来说:ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象,而 BeanFactory 是需要那个才去加载那个,所以使用 BeanFactory 初始化 Spring 较快, 但获取 Bean 时较慢, ApplicationContext 相反


2, 获取 Bean

  • 使用 getBean 方法获取 Bean, getBean 方法可以通过 id(字符串格式) , Bean 的类型, id(字符串格式) + 类型 三种方式来获取
    在这里插入图片描述

刚刚在 spring-config.xml 中制定了要存储的 Bean 的 id, 在这一步获取 Bean 时也要根据唯一的 id 来获取


3, 使用 Bean

  • 调用这个 Bean 的 run 方法
    在这里插入图片描述
    在这里插入图片描述

如果要获取多个 Bean , 获取上下文对象之后, 重复执行 2, 3 步即可


总结

总的来说没有什么特别复杂的地方, 除了获取 Bean 时 API 的调用, 需要注意的就是相关配置文件的设置~

如果本篇对你有帮助,请点赞收藏支持一下,小手一抖就是对作者莫大的鼓励啦😋😋😋~


上山总比下山辛苦
下篇文章见

在这里插入图片描述

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

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

相关文章

Python基础入门教程(上)

目录 一、你好Python 1.1、Python安装 win版 Linux版 1.2、第一个Python程序 二、Python基本语法 2.1、字面量 2.2、注释 2.3、变量 2.4、数据类型 type()函数 字符串类型的不同定义方式 2.5、数据类型转换 ​编辑 2.6、标识符 2.7、运算符 2.8、字符串扩展 …

基于aarch64分析kernel源码 三:启动代码分析

一、内核启动入口点 /** Kernel startup entry point.* ---------------------------** The requirements are:* MMU off, D-cache off, I-cache on or off,* x0 physical address to the FDT blob.* 这部分注释说明了内核启动入口点的要求和约束条件。* 要求包括&…

Vue2基础五、工程化开发

零、文章目录 Vue2基础五、工程化开发 1、工程化开发和脚手架 &#xff08;1&#xff09;开发 Vue 的两种方式 核心包传统开发模式&#xff1a;基于 html / css / js 文件&#xff0c;直接引入核心包&#xff0c;开发 Vue。工程化开发模式&#xff1a;基于构建工具&#xf…

【Python】数据分析+数据挖掘——探索Pandas中的索引与数据组织

前言 在数据科学和数据分析领域&#xff0c;Pandas是一个备受喜爱的Python库。它提供了丰富的数据结构和灵活的工具&#xff0c;帮助我们高效地处理和分析数据。其中&#xff0c;索引在Pandas中扮演着关键角色&#xff0c;它是一种强大的数据组织和访问机制&#xff0c;使我们…

【Unity2D】角色动画的切换

动画状态转换 第一种方法是设置一个中间状态&#xff0c;从中间状态向其余各种状态切换&#xff0c;且各状态向其他状态需要设置参数 实现动作转移时右键点击Make Transition即可 实现动画转移需要设置条件 点击一种动画到另一种动画的线 &#xff0c;然后点击加号添加Condi…

玩转LaTeX(三)【数学公式(基础)、​矩阵、多行公式】

数学公式基础 导言区&#xff08;引包&#xff09; \usepackage{amsmath} %带星号的eqution 正文区 \begin{document}%数学公式初步 \section{简介} \LaTeX{}将排版内容分为文本模式和数学模式。文本模式用于普通文本排版&#xff0c;数学模式用于数学公式排版。 …

【字节三面】41. 缺失的第一个正数

41. 缺失的第一个正数 解题思路 在原数组上进行操作 如果数字是2 将其放在索引为1的位置上数字x 放在索引为x - 1的位置上对于长度为n的数组 其中没有出现的最小正整数只能在[1,n 1]引入如果1 - n 这些数都出现了 那么答案就是n 1如果都没有出现完全 那么答案就在[1,n]中没…

【LeetCode】206.反转链表

题目 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]示例 3&#xff1a; …

【LeetCode 热题 100】矩阵 专题(大多原地算法,需要一定思维)

解题思路 在 代码注释中&#xff01; 文章目录 73. 矩阵置零54. 螺旋矩阵48. 旋转图像240. 搜索二维矩阵 II 73. 矩阵置零 class Solution { public:void setZeroes(vector<vector<int>>& matrix) {// 难点&#xff1a;原地算法// 直接复用 matrix 第一行 和 …

oracle,获取每日24*60,所有分钟数

前言&#xff1a; 为规范用户的时间录入&#xff0c;因此我们采用下拉的方式&#xff0c;让用户选择需要的时间&#xff0c;因此我们需要将一天24小时的时间拆分为类似00:00,00:01...23:00,23:01,23:59。因此我们需要生成24*601440行的下拉复选值。具体效果如下图所示。 思路 1…

libuv库学习笔记-processes

Processes libuv提供了相当多的子进程管理函数&#xff0c;并且是跨平台的&#xff0c;还允许使用stream&#xff0c;或者说pipe完成进程间通信。 在UNIX中有一个共识&#xff0c;就是进程只做一件事&#xff0c;并把它做好。因此&#xff0c;进程通常通过创建子进程来完成不…

微信小程序 background-image直接设置本地图片路径,编辑器正常显示,真机运行不显示解决方法

项目场景 微信小程序&#xff0c;设置background-image直接设置本地图片路径。 问题描述 编辑器正常显示&#xff0c;真机运行不显示 原因分析 background-image只能用网络url或者base64图片编码。 解决方案 1、将本地图片转为网络url后设置到background-image上 例如&…

nestjs+typeorm+mysql基本使用学习

初始化项目 安装依赖 npm i -g nest/cli 新建项目 nest new project-name 命令行创建 创建Controller&#xff1a;nest g co test 创建Module&#xff1a;nest g mo test 创建Service&#xff1a;nest g service test 请求创建 123123 接口文档swagger 安装依赖 npm…

【Golang 接口自动化03】 解析接口返回XML

目录 解析接口返回数据 定义结构体 解析函数&#xff1a; 测试 优化 资料获取方法 上一篇我们学习了怎么发送各种数据类型的http请求&#xff0c;这一篇我们来介绍怎么来解析接口返回的XML的数据。 解析接口返回数据 定义结构体 假设我们现在有一个接口返回的数据resp如…

❤ yarn 和npm 的使用

❤ yarn 和npm 的使用 yarn 版本1的使用 yarn 简介 Yarn是facebook发布的一款取代npm的包管理工具。 yarn特点&#xff1a; 1&#xff0c;速度超快。 Yarn 缓存了每个下载过的包&#xff0c;所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率&#xff0c;因…

C# 反射

反射的概念&#xff1a;C#通过类型&#xff08;Type&#xff09;来创建对象&#xff0c;调用对象中的方法&#xff0c;属性等信息&#xff1b;B超就是利用了反射原理将超声波打在人的肚子上&#xff0c;然后通过反射波进行体内器官的成员&#xff1b; 反射提供的类&#xff1a;…

【代理模式】了解篇:静态代理 动态代理~

目录 1、什么是代理模式&#xff1f; 2、静态代理 3、动态代理 3.1 JDK动态代理类 3.2 CGLIB动态代理类 4、JDK动态代理和CGLIB动态代理的区别&#xff1f; 1、什么是代理模式&#xff1f; 定义&#xff1a; 代理模式就是为其他对象提供一种代理以控制这个对象的访问。在某…

强引用和弱引用

什么是弱引用和强引用 强引用&#xff1a; JavaScript 中强引用&#xff1a;对象的引用在 JavaScript 中是强引用&#xff0c;也就是将一个引用对象通过变量或常量保存时&#xff0c;那么这个变量或常量就是强引用&#xff0c;这个对象就不会被回收。 弱引用&#xff1a; JavaS…

P1123 取数游戏(dfs,嘎嘎清晰)

1分析&#xff1a;这一题每个数是否选择会影响后面的选择情况&#xff0c;所以需要用一个数组来保存 所以状态为当前选到那个数&#xff0c;之前选的数的和以及之前每个数是否选了 之后直接搜索即可。尽管复杂度较高&#xff0c;但因为存在大量的不合法情况所以可以通过 时间复…

华为nat64配置

1.前期环境准备 环境拓扑 拓扑分为两个区域,左边为trust区域,使用IPv4地址互访,右边为untrust区域,使用IPv6地址互访 2.接口地址配置 pc1地址配置 pc2地址配置 FW接口配置 (1)首先进入防火墙配置界面 注:防火墙初始账号密码为user:admin,pwd:Admin@123,进入之后…