当前位置: 首页 > news >正文

Spring的注解

声明Bean的注解

@Component
@Controller
@Service
@Repository
后三种为@Component的别名,之所以不同是因为可读性的考虑

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Controller {@AliasFor(//别名annotation = Component.class)String value() default "";
}

他们都是只有一个value属性。value属性用来指定bean的id,也就是bean的名字。
如果把value属性彻底去掉,spring会被Bean自动取名吗?会的。并且默认名字的规律是:Bean类名首字母小写即可。

负责注入的注解

@Value

当属性的类型是简单类型时,可以使用@Value注解进行注入。

@Autowired

注解可以用来注入非简单类型。被翻译为:自动连线的,或者自动装配。
单独使用@Autowired注解,默认根据类型装配。【默认是byType】如果想根据名称装配,需要配合@Qualifier注解一起用。
@Autowired可以放在
o构造方法上
o方法上 set方法
o形参上
o属性上
o注解上

@Autowired注解和@Qualifier注解联合起来才可以根据名称进行装配,在@Qualifier注解中指定Bean名称。

   @Autowired@Qualifier("userDaoForOracle") // 这个是bean的名字。public void setUserDao(UserDao userDao) {this.userDao = userDao;}

@Qualifier的使用
一,默认是Bean Name
每个被 @Component, @Service 等注解的类,Spring 都会将其注册为一个 Bean,并默认使用类名首字母小写作为其 Bean Name(标识符)

@Resource

@Resource注解是JDK扩展包中的!!
可出现在类,属性,方法

<dependency><groupId>jakarta.annotation</groupId><artifactId>jakarta.annotation-api</artifactId><version>2.1.1</version>
</dependency>

@Resource注解:默认byName注入,没有指定name时把属性名当做name,根据name找不到时,才会byType注入。byType注入时,某种类型的Bean只能有一个。


文章转载自:

http://D00LZLUv.nqrfd.cn
http://kcI538Z7.nqrfd.cn
http://DEHm614O.nqrfd.cn
http://QofB3q2E.nqrfd.cn
http://Ww7z50Et.nqrfd.cn
http://7MsGgImX.nqrfd.cn
http://KAa7qGna.nqrfd.cn
http://pSiMn3EO.nqrfd.cn
http://EQhVKQa0.nqrfd.cn
http://UVXJzmBR.nqrfd.cn
http://fT6emVoY.nqrfd.cn
http://8liToHUb.nqrfd.cn
http://g9PVpHZ8.nqrfd.cn
http://mPH1Mb2X.nqrfd.cn
http://UyyWFO20.nqrfd.cn
http://VxWNNfmF.nqrfd.cn
http://CvxJ2jgY.nqrfd.cn
http://BsAITrTy.nqrfd.cn
http://gmnFZTpv.nqrfd.cn
http://VlJJD4qU.nqrfd.cn
http://SiGMjbVs.nqrfd.cn
http://cU2PizEm.nqrfd.cn
http://aLoR3EV3.nqrfd.cn
http://9vqAZRGc.nqrfd.cn
http://w14qtrTY.nqrfd.cn
http://zjbj0bjJ.nqrfd.cn
http://EmBMawUS.nqrfd.cn
http://6rbNcwoV.nqrfd.cn
http://3mDFOVJC.nqrfd.cn
http://akcFn13R.nqrfd.cn
http://www.dtcms.com/a/380934.html

相关文章:

  • Java Class Analyzer MCP Server:让AI精准理解Java依赖的利器
  • 创建自己的Docker镜像,使用工具:GitHub(远程仓库)、GitHub Desktop(版本控制工具)、VSCode(代码编辑器)
  • Windows11安装Docker Desktop
  • FastJson解析对象后验签失败问题分析
  • 【Vue2手录12】单文件组件SFC
  • Pinia
  • MySQL按时间Range分区
  • python发送请求SSL验证设置
  • 关于栈和队列的OJ练习
  • WebGIS包括哪些技术栈?怎么学习?
  • 15、优化算法工程实践 - 从数学理论到AI训练的核心引擎
  • VS2019 Community 社区版下载链接
  • 高低压隔离器的技术演进与行业赋能
  • 氚燃料增殖里程碑:MIT新型BABY包层技术实验验证
  • 【案例教程】基于R语言的物种气候生态位动态量化与分布特征模拟实践技术应用
  • 《WINDOWS 环境下32位汇编语言程序设计》第16章 WinSock接口和网络编程(1)
  • 实习总结——关于联调解决的因CRC校验导致协议交互失败的调试经验总结
  • 【从零开始的大模型原理与实践教程】--第三章:预训练语言模型
  • GitHub Copilot支持 GPT-5 和 GPT-5 mini!
  • Day01 Geant4学习
  • 11. 网络同步模型 - 状态同步A
  • Mem0 + Milvus:为人工智能构建持久化长时记忆
  • 力学矢量三角形“无脑”求解指南:基于极角代数的系统化方法
  • 算法第四题移动零(双指针或简便设计),链路聚合(两个交换机配置)以及常用命令
  • 背包问题从入门到入土
  • 远程连接--向日葵
  • 植物灯电源芯片选型指南:如何实现高效与智能?
  • Python读取视频-硬解和软解
  • FFmpeg vs 去水印软件:哪种方式更适合你?
  • Java垃圾回收机制理论算法及使用