【JavaEE】Spring更简单的存储和获取对象(类注解、方法注解、属性注入、Setter注入、构造方法注入)
一、存储Bean对象
在这篇文章中我介绍了Spring最简单的创建和使用:Spring的创建和使用
其中存储Bean对象是这样的:

1.1 配置扫描路径
想要成功把对象存到Spring中,我们需要配置对象的扫描包路径
这样的话,就只有被配置了的包中的加了注解的类才会被存储到Spring中
这里的注解是什么?下面我们介绍

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:content="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><content:component-scan base-package="'com.java.Ethan'"></content:component-scan></beans>
1.2 添加注解存储Bean对象

1.3 类注解
1.3.1 @Controller(控制器存储)

1.3.2 @Service(服务存储)

1.3.3 @Repository(仓库存储)

1.3.4 @Component(组件存储)

1.3.5 @Configuration(配置存储)

1.4 关于类注解的疑问
1.4.1 为什么要这么多类注解?

1.4.2 类注解之间的关系

1.4.3 Bean默认命名规则


在源码中就有说明:

1.5 方法注解@Bean
方法注解@Bean必须配合类注解才能将对象存储到Spring

1.6 Bean重命名

二、获取Bean对象
获取 bean 对象也叫做对象装配,是把对象取出来放到某个类中,有时候也叫对象注入。

下⾯我们按照实际开发中的模式,将 Service 类注⼊到 Controller 类中。
2.1 属性注入

注意:


2.2 Setter注入


2.3 构造方法注入
构造方法注入是 Spring 官方从 4.x 之后推荐的注入方式

注意:
只有一个构造方法的时候,可以省略注解@Autowired


相关文章:
【JavaEE】Spring更简单的存储和获取对象(类注解、方法注解、属性注入、Setter注入、构造方法注入)
一、存储Bean对象 在这篇文章中我介绍了Spring最简单的创建和使用:Spring的创建和使用 其中存储Bean对象是这样的: 1.1 配置扫描路径 想要成功把对象存到Spring中,我们需要配置对象的扫描包路径 这样的话,就只有被配置了的包…...
linux上的通用拍照程序
最近因为工作需要,在ubuntu上开发了一个拍照程序。 为了找到合适的功能研究了好几种实现方式,在这里记录一下。 目录 太长不看版 探索过程 v4l2 QT opencv4.2 打开摄像头 为什么不直接打开第一个视频节点 获取所有分辨率 切换摄像头 太长不看…...
代码随想录-刷题第七天
454. 四数相加II 题目链接:454. 四数相加II 思路:哈希法。使用map集合,key存放ab的值,value存放ab出现的次数。使用两层循环,循环前两个数组,找出ab,对map赋值。再用两层循环,遍历…...
C# 获取图像、字体等对象大小的数据结构SizeF
如果你想要获取字符串 "你好吗" 的字节数组长度或者字符数, 使用如下代码: string s "你好吗"; //字节数组长度 int byteCount System.Text.Encoding.UTF8.GetBytes(s).Length; //字符数 int charCount s.Length; 如果你想获取…...
「 系统设计 」 为什么要做架构分层?
「 系统设计 」 为什么要做架构分层? 参考&鸣谢 3.设计模式之分层思维:为什么要做代码分层架构? 从零开始学架构(八)分层架构和设计模式 架构模式之分层架构总结 文章目录 「 系统设计 」 为什么要做架构分层&…...
4:kotlin 方法(Functions)
想要声明一个函数需要使用fun关键字 fun hello() {return println("Hello, world!") }fun main() {hello()// Hello, world! }格式: fun 方法名(参数1: 参数1类型, 参数2 : 参数2类型, ...): 返回值类型 {方法体return 返回值 }fun 方法名(参数1: 参数1类型, 参数2…...
Pycharm run 输出界面控制一行能够输出的元素个数
Pycharm run 输出界面控制一行能够输出的元素个数 今天遇到了一个问题,当我们在 Pycharm 中打印输出数组时,如果数组一行的元素个数过多,那么我们在打印时就会出现以下问题。 代码如下: import numpy as npx np.array([[0., 0.7…...
C++初级项目webserver项目流程介绍(2)
一、引言 C的webserver项目是自己在学完网络编程后根据网课的内容做的一个初级的网络编程项目。 这个项目的效果是可以在浏览器通过输入网络IP地址和端口,然后打开对应的文件目录 效果如下: 也可以打开文件夹后点击目录,打开到对应的文件夹…...
SIPp mac和debian用法可能略有差别
<ereg regexp"<(.*)>" search_in"hdr" header"Contact:" check_it"true" assign_to"dummy,remote_contact"/> debian没事,但mac报错 <变< >变> 就都冇问题了 https://github.…...
echarts的横向柱状图文字省略,鼠标移入显示内容 vue3
效果图 文字省略 提示 如果是在x轴上的,就在x轴上添加triggerEvent: true,如果是y轴就在y轴添加,我是在y轴上添加的 并且自定义的方法(我取名为extension) // echarts 横向省略文字 鼠标移入显示内容 export const extension…...
laravel8安装多应用多模块(笔记三)
先安装laravel8 Laravel 安装(笔记一)-CSDN博客 一、进入项目根目录安装 laravel-modules composer require nwidart/laravel-modules 二、 大于laravel5需配置provider,自动生成配置文件 php artisan vendor:publish --provider"Nwid…...
Vue组件的几种通信方式
这里写目录标题 Vue组件的几种通信(数据传递)方式非父子组件间通信(Bus事件总线)介绍实例 非父子通信-provide&inject1.作用2.场景3.语法4.注意 父子组件间的通信固定props属性名(v-model)介绍实例 不固…...
golang panic关键词执行原理与代码分析
使用的go版本为 go1.21.2 首先我们写一个简单的panic调度与捕获代码 package mainfunc main() {defer func() {recover()}()panic("panic test") }通过go build -gcflags -S main.go获取到对应的汇编代码 可以看到当我们调度panic时,Go的编译器会将这段…...
Error running Tomcat8: Address localhost:1099 is already in use 错误解决
摘要: 有时候运行web项目的时候会遇到 Error running Tomcat8: Address localhost:1099 is already in use 的错误,导致web项目无法运行。这篇 blog 介绍了解决办法。 有时候运行web项目的时候会遇到 Error running Tomcat8: Address localhost:1099 is already in …...
android studio如何给安卓虚拟机发送短信
首先,cd到指定路径 默认情况下,Android SDK通常安装在以下位置: Windows:C:\Users\YourUsername\AppData\Local\Android\Sdk\platform-toolsmacOS:/Users/YourUsername/Library/Android/sdk/platform-toolsLinux&…...
立体仓库PLC控制系统子站诊断功能块
// //获取profinet网络已组态站信息 // //MODE:0自动辨识是获取组态信息还是错误信息 //MODE:1获取IO 设备从站已组态 //MODE:2获取IO 设备 从站故障 //MODE:3获取IO 设备 从站已禁用 //MODE:4获取IO 设备 从站存在 //MODE:5获取IO 设备 从站出现问题 // //站点状态字节位含义 …...
NFT Insider115:The Sandbox开设元宇宙Diorama快闪店,YGG Web3 游戏峰会已开幕
引言:NFT Insider由NFT收藏组织WHALE Members、BeepCrypto联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据,艺术新闻类,游戏新闻类,虚拟世界类&#…...
【Redis篇】简述Java中操作Redis的方法
文章目录 🎄简述Jedis🎄Jedis优点🍔使用Jedis连接Redis⭐进行测试🎈进行测试 Redis(Remote Dictionary Server)是一种流行的高性能内存数据库,广泛应用于各种应用程序和系统中。作为Java开发人员…...
深度解读英伟达新一轮对华特供芯片H20、L20、L2的定位
大家好,我是极智视界,欢迎关注我的公众号,获取我的更多前沿科技分享 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq 因为一直从事 AI 工…...
一起学docker系列之九docker运行mysql 碰到的各种坑及解决方法
目录 前言1 Docker 运行mysql命令2 坑一:无法读取/etc/mysql/conf.d目录的问题3 坑二:/tmp/ibnr0mis 文件无法创建/写入的问题4 坑三:Navicat 连接错误(1045-access denied)5 坑四:MySQL 登录失败问题结语 …...
别再死记硬背了!用Python模拟OPT、FIFO、LRU算法,帮你彻底搞懂缺页率计算
用Python实战模拟三大页面置换算法:从理论到可视化理解 当你在深夜啃着操作系统教材,盯着那些晦涩的页面置换算法公式时,是否曾幻想过能"看见"这些算法是如何工作的?本文将通过Python代码,带你亲手构建OPT、…...
Visual C++ Redistributable AIO:一站式解决Windows运行库问题的终极方案
Visual C Redistributable AIO:一站式解决Windows运行库问题的终极方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist Visual C Redistributable AI…...
你的STM32数据存对了吗?FatFS文件系统在SD卡与SPI Flash上的性能实测与选型指南
STM32存储方案实战:FatFS在SD卡与SPI Flash上的性能对决与工程选型 当你的嵌入式设备需要记录传感器数据、存储配置文件或保存用户日志时,选择哪种存储方案最合适?面对市面上琳琅满目的SD卡、SPI Flash芯片,工程师往往陷入性能、成…...
从官方Demo工程到实际项目:手把手教你如何安全地‘魔改’FreeRTOS配置(避坑configUSE_TICK_HOOK)
从官方Demo工程到实际项目:手把手教你如何安全地‘魔改’FreeRTOS配置(避坑configUSE_TICK_HOOK) 当你第一次拿到FreeRTOS官方Demo工程时,那种感觉就像获得了一个功能齐全的"瑞士军刀"——它展示了各种RTOS特性的使用方…...
3分钟快速上手:FigmaCN中文汉化插件完整指南
3分钟快速上手:FigmaCN中文汉化插件完整指南 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面感到困扰吗?专业术语看不懂,菜单选…...
Python金融数据采集终极指南:yfinance从入门到深度应用完整教程
Python金融数据采集终极指南:yfinance从入门到深度应用完整教程 【免费下载链接】yfinance Download market data from Yahoo! Finances API 项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance 在量化投资和金融数据分析领域,高效获取准…...
Python 上下文管理器深度指南:从协议原理到生产级实战
Python 上下文管理器深度指南:从协议原理到生产级实战 管理文件句柄、数据库事务、临时环境变量——为什么你的代码需要 with? 一、开篇:一个差点造成线上事故的故事 去年我们团队的一个服务出现了一个诡异的数据库连接泄漏问题。症状很隐蔽…...
5个核心功能全面解析:第七史诗自动化助手终极使用指南
5个核心功能全面解析:第七史诗自动化助手终极使用指南 【免费下载链接】e7Helper 【Epic Seven Auto Bot】第七史诗多功能覆盖脚本(刷书签🍃,挂讨伐、后记、祭坛✌️,挂JJC等📛,多服务器支持📺&…...
别再手动配置寄存器了!用TI的Pin Mux Tool和SysConfig搞定C2000 DSP引脚初始化(附F28388D实战)
告别寄存器配置:用TI图形化工具高效开发C2000 DSP 第一次接触C2000系列DSP开发时,最让我头疼的就是那些繁琐的寄存器配置。每个引脚的功能、复用选项、上下拉电阻设置,都需要逐一手动计算寄存器值。直到发现了TI的Pin Mux Tool和System Conf…...
NVIDIA Profile Inspector终极指南:3步解锁显卡隐藏性能,游戏帧率飙升50%
NVIDIA Profile Inspector终极指南:3步解锁显卡隐藏性能,游戏帧率飙升50% 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款功能强大的显卡驱动深度…...
