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开发者,是否曾经遇到过多线程并发的问题?线程数量过多时,会导致资源浪费,应用性能下降,甚至发生线程死锁的情况。那么,有没有一种方法可以有效地管理线程,避免这些问题呢&…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...