关于Spring的bean的相关注解以及其简单使用方法
一、前置工作
第一步:创建一个maven项目
第二步:在resource中创建一个名字叫做spring-config.xml的文件,并把以下代码复制粘贴
<?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">
//com.java.demo改成你自己的包名字<content:component-scan base-package="com.java.demo"></content:component-scan>
</beans>
第三步:创建com.java.com这个包,及其相应的内容,列如我创建一个学生类

二、五大注解的简析
五大注解,分别是
controller
Service
Resopsitory
Component
Configuration
简单来说,他们就是作为一个标识,每一个都表示不同的意思
但我们只是使用的话,他们的效果是近乎一样的
我们都只需要在类前面加上响应的注解,然后在主函数利用ApplicationContext获取注解,并调用对应方法,就可以打印

三、主方法
public class App {public static void main(String[] args) {
//一定要写自己的xml名字ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
//利用反射获取对象Student student = context.getBean("student", Student.class);
//调用对象方法student.sayHi();}
}
四、如何使用bean
我们根据上面三个步骤,已经可以使用五大注解的方式来简单的的获取和调用对象了,现在我们需要对对象的内容进行注入,并获取注入了属性之后的对象
属性注入:
@Component//要使用bean必须加上五大注解之一
public class Student {@Autowired//使用Autowired进行属性注入private Student s1;private int id;private String name;private int score;@Override//这个是方便检查结果public String toString() {return "Student{" +"s1=" + s1 +", id=" + id +", name='" + name + '\'' +", score=" + score +'}';}
//伪代码,进行属性注入public Student func(){Student student = new Student();student.name = "张三";student.id = 10;student.score = 100;return student;}}

setter注入
@Component//必须配合五大注解使用
public class Student {private Student s1;private int id;private String name;private int score;@Overridepublic String toString() {return "Student{" +"s1=" + s1 +", id=" + id +", name='" + name + '\'' +", score=" + score +'}';}
//这里使用Autowired,是因为我这个伪代码中有set这个赋值操作
//所以setter注入就是要在set方法加上注解@Autowiredpublic Student func(){Student student = new Student();student.name = "张三";student.id = 10;student.score = 100;return student;}}

构造方法注入
构造注入是指,在构造调用者实例的同时,完成被调用者的实例化。即使用构造器设置依赖关系。
Spring调用类的有参数构造方法,创建对象同时给属性赋值
相关文章:
关于Spring的bean的相关注解以及其简单使用方法
一、前置工作 第一步:创建一个maven项目 第二步:在resource中创建一个名字叫做spring-config.xml的文件,并把以下代码复制粘贴 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.sprin…...
【计算机视觉】BLIP:源代码示例demo(含源代码)
文章目录 一、Image Captioning二、VQA三、Feature Extraction四、Image-Text Matching 一、Image Captioning 首先配置代码: import sys if google.colab in sys.modules:print(Running in Colab.)!pip3 install transformers4.15.0 timm0.4.12 fairscale0.4.4!g…...
TWILIGHT靶场详解
TWILIGHT靶场详解 下载地址:https://download.vulnhub.com/sunset/twilight.7z 这是一个比较简单的靶场,拿到IP后我们扫描发现开启了超级多的端口 其实这些端口一点用都没有,在我的方法中 但是也有不同的方法可以拿权限,就需要…...
【案例】--GPT衍生应用案例
目录 一、前言二、GPT实现智能问答架构2.1、基本的GPT实现智能问答架构2.2、可应用的GPT实现智能问答架构1、语义转换2、相似度关键字矩阵3、ES中搜索相似度关键字矩阵三、后续一、前言 GPT,全称Generative Pre-trained Transformer ,中文名可译作生成式预训练Transformer。…...
Sip网络音频对讲广播模块, sip网络寻呼话筒音频模块
Sip网络音频对讲广播模块, sip网络寻呼话筒音频模块 一、模块介绍 SV-2101VP和 SV-2103VP网络音频对讲广播模块 是一款通用的独立SIP音频功能模块,可以轻松地嵌入到OEM产品中。该模块对来自网络的SIP协议及RTP音频流进行编解码。 该模块支持多种网络协议…...
leetcode1219. 黄金矿工(java)
黄金矿工 leetcode1219. 黄金矿工题目描述回溯算法代码 回溯算法 leetcode1219. 黄金矿工 难度: 中等 eetcode 1219 黄金矿工 题目描述 你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注。每个单元…...
Svelte框架入门
关键词 前端框架、编译器、响应式、模板 介绍 Svelte /svelt/ adj. 苗条的;线条清晰的;和蔼的 Svelte是一个前端组件框架,就像它的英文名字一样,Svelte的目标是打造一个更高性能的响应性前端框架。 Svelte类似于React和Vue框架&am…...
在linux中进行arm交叉编译体验tiny6410裸机程序开发流程
在某鱼上找了一个友善之臂的Tiny6410开发板用来体验一下嵌入式开发。这次先体验一下裸机程序的开发流程,由于这个开发板比较老旧了,官方文档有很多过期的内容,所以记录一下整个过程。 1. 交叉编译器安装 按照光盘A中的文档《04- Tiny6410 L…...
SpringBoot实战(二十三)集成 SkyWalking
目录 一、简介二、拉取镜像并部署1.拉取镜像2.运行skywalking-oap容器3.运行skywalking-ui容器4.访问页面 三、下载解压 agent1.下载2.解压 四、创建 skywalking-demo 项目1.Maven依赖2.application.yml3.DemoController.java 五、构建启动脚本1.startup.bat2.执行启动脚本3.发…...
深度学习实践——卷积神经网络实践:裂缝识别
深度学习实践——卷积神经网络实践:裂缝识别 系列实验 深度学习实践——卷积神经网络实践:裂缝识别 深度学习实践——循环神经网络实践 深度学习实践——模型部署优化实践 深度学习实践——模型推理优化练习 深度学习实践——卷积神经网络实践ÿ…...
linux | vscode | makefile | c++编译和调试
简单介绍环境: vscode 、centos、 gcc、g、makefile 简单来说就是,写好项目然后再自己写makefile脚本实现编译。所以看这篇博客的用户需要了解gcc编译的一些常用命令以及makefile语法。在网上看了很多教程,以及官网也看了很多次,最…...
Spring | Bean 作用域和生命周期
一、通过一个案例来看 Bean 作用域的问题 Spring 是用来读取和存储 Bean,因此在 Spring 中 Bean 是最核心的操作资源,所以接下来我们深入学习⼀下 Bean 对象 假设现在有⼀个公共的 Bean,提供给 A 用户和 B 用户使用,然而在使用的…...
培训(c++题解)
题目描述 某培训机构的学员有如下信息: 姓名(字符串)年龄(周岁,整数)去年 NOIP 成绩(整数,且保证是 5 的倍数) 经过为期一年的培训,所有同学的成绩都有所提…...
ansible-playbook编写 lnmp 剧本
ansible-playbook编写 lnmp 剧本 vim /opt/lnmp/lnmp.yaml执行剧本 ansible-playbook lnmp.yaml...
需求太多处理不过来?MoSCoW模型帮你
一、MoSCoW模型是什么 MoSCoW模型 是在项目管理、软件开发中使用的一种排序优先级的方法,以便开发人员、产品经理、客户对每个需求交付的重要性达成共识。 MoSCoW是一个首字母缩略词,代表: M(Must have):…...
Vue 3:玩一下web前端技术(六)
前言 本章内容为VUE请求后端技术与相关技术讨论。 上一篇文章地址: Vue 3:玩一下web前端技术(五)_Lion King的博客-CSDN博客 下一篇文章地址: Vue 3:玩一下web前端技术(七)_Lio…...
【点云处理教程】00计算机视觉的Open3D简介
一、说明 Open3D 是一个开源库,使开发人员能够处理 3D 数据。它提供了一组用于 3D 数据处理、可视化和机器学习任务的工具。该库支持各种数据格式,例如 .ply、.obj、.stl 和 .xyz,并允许用户创建自定义数据结构并在程序中访问它们。 Open3D 广…...
Windows10系统还原操作
哈喽,大家好,我是雷工! 复制了下虚拟机的Win10系统,但其中有一些软件,想实现类似手机的格式化出厂操作,下面记录Windows10系统的还原操作。 一、系统环境: 虚拟机内的Windows10,64…...
Django学习笔记-模板(Template)基础
使用模块可以很方便的执行一些数据操作,然后根据传入的数据直接在模板html文件中进行处理。 1.Django中的模板配置 Django的模板引擎在sttings.py文件中: TEMPLATES [{# 模板引擎,默认为django模板BACKEND: django.template.backends.dja…...
使用 NVM(Node Version Manager)管理 Node.js 版本
使用 NVM(Node Version Manager)管理 Node.js 版本 步骤一:安装 NVM NVM 是一个用于安装和管理不同版本的 Node.js 的工具。首先,你需要确保你的系统上已经安装了 NVM。可以通过以下命令检查 NVM 是否已经安装: nvm …...
终极TypeScript设计模式指南:如何避免过度设计与模式滥用
终极TypeScript设计模式指南:如何避免过度设计与模式滥用 【免费下载链接】design_patterns_in_typescript :triangular_ruler: Design pattern implementations in TypeScript 项目地址: https://gitcode.com/gh_mirrors/de/design_patterns_in_typescript …...
Phi-4-mini-reasoning部署教程:Nginx反向代理7860端口实现域名访问
Phi-4-mini-reasoning部署教程:Nginx反向代理7860端口实现域名访问 1. 项目介绍 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这款模型主打"小参数、强推理、长上下文、低延迟&q…...
Linux grep 命令的使用指南
Linux grep 命令全面使用指南一、基础搜索语法1. 基本文本搜索1234# 在文件中搜索指定字符串grep "search_pattern" file.txt# 示例:搜索包含"error"的行grep "error" /var/log/syslog2. 多文件搜索1234# 在多个文件中搜索grep "…...
如何快速掌握Outfit字体:5个简单技巧打造专业级设计
如何快速掌握Outfit字体:5个简单技巧打造专业级设计 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts Outfit字体是一款专业的开源无衬线字体,提供从Thin到Black的9种完整字…...
Adobe-GenP 3.0:如何一键解锁Adobe全家桶的终极指南
Adobe-GenP 3.0:如何一键解锁Adobe全家桶的终极指南 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 你是否曾梦想免费使用Photoshop、Premiere Pro等专业…...
CasRel关系抽取完整流程:从原始文本清洗、NER预处理到SPO抽取
CasRel关系抽取完整流程:从原始文本清洗、NER预处理到SPO抽取 1. 什么是CasRel关系抽取? CasRel(Cascade Binary Tagging Framework)是一个专门从文本中自动提取"谁-做了什么-对谁"这种关系信息的AI模型。想象一下&am…...
快速SEO排名服务需要多长时间见效_快速SEO排名服务有哪些常见的手段
快速SEO排名服务需要多长时间见效 在当今数字化时代,网站的在线可见度对于企业的成功至关重要。快速SEO排名服务应运而生,旨在帮助企业尽快在搜索引擎上获得更好的排名,从而提高流量和业务。但是,很多人都会疑惑,快速…...
5大维度解析开源飞控核心技术:PX4自主飞行全链路实战指南
5大维度解析开源飞控核心技术:PX4自主飞行全链路实战指南 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 无人机飞控开发是融合多学科知识的复杂工程领域,而PX4作为开源飞控…...
面试:描述下bean的生命周期
1.实例化bean: 反射的方式生成对象 2.填充bean的属性: populateBean(),循环依赖的问题(三级缓存) 3.调用aware接口相关的方法: InvokeAwareMethod(完成BeanName,BeanFactory…...
AMD Ryzen系统调试利器:SMUDebugTool全方位应用指南
AMD Ryzen系统调试利器:SMUDebugTool全方位应用指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitc…...
