spring注解的开端(@Component替代bean标签的使用)
目录
一、介绍
1.什么是注解开发?
2.Spring注解的版本
3.基于spring注解的应用
4. @Component的细分注解
5.相关注解
二、简单例子讲解
1.类打注解
2.扫描注解放入工厂
3.总工厂取注解调用
4.运行结果
总结:
一、介绍
1.什么是注解开发?
Spring除了xml配置文件进行配置之外,还可以使用注解方式进行配置,注解方式慢慢替代xml配置。注解开发比xml文件配置要方便许多
2.Spring注解的版本
2.0时代:spring开始出现注解
2.5时代:spring的Bean配置可以使用注解完成
3.0时代:spring其他配置也可以使用注解完成,进入了全注解时代
3.基于spring注解的应用
主要是使用注解的方式代替原有的xml的<bean>标签及其标签属性的设置,使用@Component注解替代<bean>标签
@Component:使用该注解的类,会在指定扫描范围内被spring加载并实例化(就是使用这个注解的类,会在spring的xml文件中被扫描到然后进行实例化)
ps:注解就像一个个标签,贴在类上面,统一交给spring的xml文件去管理,谁要获取就从xml的工厂里面去获取这个标签名字就好了。
4. @Component的细分注解
由于Java EE开发是分层的,为了每层Bean标识的注解语义更加明确, @Component又延申出了如下的3个注解
@Repository:在Dao层类上使用
@Service:在service层类上使用
@Controller:在web层类上使用
5.相关注解
1.@Scope:在类上使用。标注bean的作用范围,取值为singleton或者prototype
2.@Lazy:在类上使用标注bean是否延迟加载,取值为true或者false
3.@PostConstruct:在方法上使用,标注bean的实例化后执行的方法
4.@PreDestroy:在方法上使用,标注bean的销毁前执行方法
二、简单例子讲解
准备工作:建好spring环境👇
快速入门使用spring详细步骤(介绍、导入依赖、第一个简单程序)_云边的快乐猫的博客-CSDN博客
正式开始👇
1.类打注解
即:建立一个类。然后给这个类打上标签(注解)-->@Component("自定义名称") 。要不然在很多类管理工厂(spring.xml)里面,怎么识别你是哪个类。

package com.spring6.demo;import org.springframework.stereotype.Component;//1.添加@Component注解,括号里面的是自定义名称,不过为了识别方便,最好和类名一样。ps:如果括号里面不配置名称,那么就默认为该类名的小写名称
@Component("Hello")
public class Hello {
}
2.扫描注解放入工厂
即:在类管理工厂(spring的xml)文件里面编写一个扫描组件去扫描这些类。
ps:xml文件的创建方法:在resources里使用快捷键alt+insert ,XML配置文件-->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:context="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"><!--注解组件扫描:扫描指定的基本包以及其子包下的类,识别使用component的类--><context:component-scan base-package="com.spring6.demo"/>
</beans>
3.总工厂取注解调用
即:建立一个类去从工厂里面获取打了标签(注解)的类进行输出。

package com.spring6.demo;import org.springframework.context.support.ClassPathXmlApplicationContext;public class TextHello {public static void main(String[] args) {//1.扫描spring管理工厂xml文件ClassPathXmlApplicationContext atx = new ClassPathXmlApplicationContext("spring6.xml");//2.从xml工厂里面根据注解名调用类Object H = atx.getBean("Hello");//3.打印输出System.out.println(H);}
}
4.运行结果

总结:
注解就是使用注解标签去替代在spring的bean标签里面的扫描id,class这些,因为原先xml这些每个类都要写上id,还要class的位置就很麻烦,现在直接使用注解在该类上面标上就省去了这些繁琐的步骤。不过还是要在xml文件里面配置组件包扫描。
相关文章:
spring注解的开端(@Component替代bean标签的使用)
目录 一、介绍 1.什么是注解开发? 2.Spring注解的版本 3.基于spring注解的应用 4. Component的细分注解 5.相关注解 二、简单例子讲解 1.类打注解 2.扫描注解放入工厂 3.总工厂取注解调用 4.运行结果 总结: 一、介绍 1.什么是注解开发&…...
Matlab傅里叶谱方法求解一维波动方程
傅里叶谱方法求解基本偏微分方程—一维波动方程 一维波动方程 对于一根两端固定、没有受到任何外力的弦, 若只研究其中的一段, 在不太长的时间 里, 固定端来不及对这段弦产生影响, 则可以认为固定端是不存在的, 弦的长度为无限大。 这种无界 (−∞<x<∞)(-\infty<x&…...
py3中 collections.Counter()函数典型例题
文章目录py3中 collections 的常用STL**Counter()** 函数**defaultdict()** 函数**deque()** 函数**orderedDict()** 函数(缺例题)小结py3中 collections 的常用STL 对于这个工具包非常好用,尤其是其中的 Counter() 函数 使用次数颇为频繁&a…...
Linux部署达梦数据库超详细教程
陈老老老板🦸👨💻本文专栏:国产数据库-达梦数据库👨💻本文简述:本文讲一下达梦数据库的下载与安装教程(Linux版),超级详细。👨💻…...
ctfshow 每周大挑战 极限命令执行
《简单的命令执行题目》 这里感叹一下,g4佬是真好厉害,这次题目十分的难,嗯,对我这种菜鸡来说是这样的,想了一天,最后结束了,也还是没有想明白第五题的解法,我真是fw,到最…...
使用vue3,vite,less,flask,python从零开始学习硅谷外卖(16-40集)
严正声明! 重要的事情说一遍,本文章仅供分享,文章和代码都是开源的,严禁以此牟利,严禁侵犯尚硅谷原作视频的任何权益,我知道学习编程的人各种各样的心思都有,但这不是你对开源社区侵权的理由&am…...
坚持就是胜利
很多朋友,可能坚持了多年的同等学力申硕考试,依然没有通过。如果你感到困惑,感到迷茫,要坚信:坚持就能胜利。有很多人跟你一样,一直坚持在路上,没有停止脚步。 生活没有你想象的那么好ÿ…...
代码中出现转置 pose (c2w,外参矩阵) 或者转置 intrinsic (内参)矩阵的原因
在代码中见到 pose(c2w),intrinsic 矩阵的转置,觉得比较奇怪。 后来想了一下为什么。下面解释一下: 用 c2w 矩阵举例子。理论上,一个 c2w 左乘上 一个相机坐标系下的点 P的坐标,能够得到该点在…...
2023 年腾讯云服务器配置价格表出炉(2核2G/2核4G/4核8G/8核16G、16核32G)
腾讯云轻量应用服务器为轻量级的云服务器,使用门槛低,按套餐形式购买,轻量应用服务器套餐自带的公网带宽较大,4M、6M、7M、10M、14M及20M套餐可选,如果是云服务器CVM这个带宽价格就要贵很多了。 1、轻量应用服务器优惠…...
相机出图画面一半清晰,一半模糊的原因是什么?
1、问题背景:在做项目的过程中,有遇到过几次,出图后画面是一半清晰,一半模糊的现象,再重新对焦也是一样。但换了个镜头后就好了,这应该是镜头的质量问题,但导致镜头出现这种问题的具体原因是什么…...
Rust学习入门--【4】Rust 输出到命令行
Rust 语言中的打印“函数” 学习新的编程语言时,大家都喜欢打印“Hello World”。 在Rust中怎样将字符串打印出来呢? Rust 输出文字的方式主要有两种:println!() 和 print!()。 “函数”差异说明: 这两个"函数"都是向…...
Vector刷写方案—vFlash工具介绍
我是穿拖鞋的汉子,魔都中坚持长期主义的工科男! 今天魔都天气是连阴雨,滴滴答答的下个不停,心情也跟着潮湿起来!老规矩分享一段喜欢的文字,避免成为高知识低文化的工程师: 即使在真正的困境里,也一直提示自己,每次自恋不得超过十分钟! 那些看似无法度过得困境,不是…...
【阶段总结】《非结构化信息分析应用与实践(筹)》
《非结构化信息分析应用与实践(筹)》Part 1.知识储备一、机器学习 1.几种常见的有监督学习算法 2.几种常见的无监督学习算法 3.数据挖掘基础知识 30 问 二、神经网络与深度学习 1.MP神经网络模型(附实例代码讲解) 2.图解LST…...
七大设计原则之迪米特法则应用
目录1 迪米特法则介绍2 迪米特法则应用1 迪米特法则介绍 迪米特原则(Law of Demeter LoD)是指一个对象应该对其他对象保持最少的了解,又叫最少知 道原则(Least Knowledge Principle,LKP),尽量降低类与类之…...
curl命令用法精简整理
目录1.GET请求1.1 形式1:1.2 形式2:2.POST请求2.1 无入参:2.2 form传参(文件):2.3 json入参:2.4 json文件入参:3.请求计时3.1 time命令(Linux):3.…...
Fluent Python 笔记 第 5 章 一等函数
在 Python 中,函数是一等对象。编程语言理论家把“一等对象”定义为满足下述条件的程 序实体: 在运行时创建能赋值给变量或数据结构中的元素 • 能作为参数传给函数能作为函数的返回结果 5.1 把函数视作对象 会用 map。 5.2 高阶函数 接受函数为参数࿰…...
卡尔曼滤波器与DSP实现
卡尔曼滤波器是利用系统状态方程,结合测量结果对系统状态进行进行最优估计的算法。本文介绍它的主要公式,并举例在C6000 DSP上实现。 推荐资料 KalmanFilter.NETUnderstanding Kalman Filters卡尔曼滤波与组合导航原理 “If you can’t explain it sim…...
引入QQ邮箱发送验证码进行安全校验
最近想给自己的项目在注册时加点安全校验,本想着使用短信验证码,奈何囊中羞涩只能退而求次改用QQ邮箱验证注册~ 一.需求分析 场景:用户输入自己的邮箱,点击获取验证码,后台会发送一封邮件到对应邮箱中。 分析&#x…...
【c++】数组
文章目录一维数组定义方式数组名案例案例1:元素逆置案例2:冒泡排序二维数组定义方式数组名案例:考试成绩统计数组特点: 1、每个数据元素放在一块连续的内存空间中; 2、数组中每个数据元素都是相同数据类型;…...
线程池的简单实现:Java线程池初学者必读指南
"作为一名Java开发者,是否曾经遇到过多线程并发的问题?线程数量过多时,会导致资源浪费,应用性能下降,甚至发生线程死锁的情况。那么,有没有一种方法可以有效地管理线程,避免这些问题呢&…...
背包问题可视化:用动态规划表格理解0-1背包最优解
背包问题可视化:用动态规划表格理解0-1背包最优解 当你第一次面对背包问题时,可能会被那些复杂的公式和递归关系搞得晕头转向。我们常常会遇到这样的情况:明明看懂了算法描述,但一到手动计算就不知所措。这就是为什么我们需要一种…...
30分钟快速搭建企业级工作流系统:RuoYi-Flowable-Plus完整指南
30分钟快速搭建企业级工作流系统:RuoYi-Flowable-Plus完整指南 【免费下载链接】RuoYi-Flowable-Plus 本项目基于 RuoYi-Vue-Plus 进行二次开发扩展Flowable工作流功能,支持在线表单设计和丰富的工作流程设计能力。如果觉得这个项目不错,麻烦…...
从零搭建一个HarmonyOS版GitCode客户端:我的React Native项目目录结构与配置心得
从零搭建HarmonyOS版GitCode客户端的工程化实践 作为一名长期耕耘在跨平台开发领域的技术实践者,我最近完成了基于React Native的HarmonyOS版GitCode客户端开发。这个项目让我深刻体会到,良好的项目结构设计比功能实现更重要——它直接影响团队协作效率和…...
3步终极解放QQ音乐加密文件:QMCDecode全平台播放攻略
3步终极解放QQ音乐加密文件:QMCDecode全平台播放攻略 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转…...
GESP5级C++考试语法知识(十一、递归算法(一))
🌟 第一章:什么是递归?(“套娃小精灵”的故事)1、🎯 想象一个魔法世界:有一个小精灵,它不会做复杂的事情,但它有一个绝招:👉 遇到问题,…...
SleeperX:Mac电源管理的智能守护者,让每一次工作都不被打断
SleeperX:Mac电源管理的智能守护者,让每一次工作都不被打断 【免费下载链接】SleeperX MacBook prevent idle/lid sleep! Hackintosh sleep on low battery capacity. 项目地址: https://gitcode.com/gh_mirrors/sl/SleeperX 您是否经历过这样的时…...
高效利用CompactGUI社区协作:释放游戏压缩数据价值的全方位指南
高效利用CompactGUI社区协作:释放游戏压缩数据价值的全方位指南 【免费下载链接】CompactGUI Transparently compress active games and programs using Windows 10/11 APIs 项目地址: https://gitcode.com/gh_mirrors/co/CompactGUI 在数字游戏时代…...
告别龟速下载!手把手教你用Aspera ascp命令高效获取SRA数据(附常见错误排查)
告别龟速下载!手把手教你用Aspera ascp命令高效获取SRA数据(附常见错误排查) 在生物信息学研究中,获取公共数据库中的测序数据是许多分析的第一步。然而,传统的FTP下载方式往往速度缓慢,尤其是当需要下载大…...
炉石传说脚本Hearthstone-Script:三步从零到精通的自动化游戏指南 [特殊字符]
炉石传说脚本Hearthstone-Script:三步从零到精通的自动化游戏指南 🎮 【免费下载链接】Hearthstone-Script Hearthstone script(炉石传说脚本)(2024.01.25停更至国服回归) 项目地址: https://gitcode.com…...
基于Dify和RAG技术的AI智能客服准确率优化实战
在构建基于Dify的AI智能客服时,我们常常会遇到一个核心挑战:模型给出的回答听起来头头是道,但仔细一核对,却发现它“一本正经地胡说八道”。例如,在一个医疗健康咨询场景中,用户询问“布洛芬和头孢可以一起…...
