news 2026/2/19 16:00:05

(23)声明Bean的注解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(23)声明Bean的注解

负责声明Bean的注解,常见的包括四个:

  • @Component
  • @Controller
  • @Service
  • @Repository

源码如下:

packagecom.powernode.annotation;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;@Target(value={ElementType.TYPE})@Retention(value=RetentionPolicy.RUNTIME)public@interfaceComponent{Stringvalue();}
packageorg.springframework.stereotype;importjava.lang.annotation.Documented;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;importorg.springframework.core.annotation.AliasFor;@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic@interfaceController{@AliasFor(annotation=Component.class)Stringvalue()default"";}
packageorg.springframework.stereotype;importjava.lang.annotation.Documented;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;importorg.springframework.core.annotation.AliasFor;@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic@interfaceService{@AliasFor(annotation=Component.class)Stringvalue()default"";}
packageorg.springframework.stereotype;importjava.lang.annotation.Documented;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;importorg.springframework.core.annotation.AliasFor;@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic@interfaceRepository{@AliasFor(annotation=Component.class)Stringvalue()default"";}

通过源码可以看到,@Controller、@Service、@Repository这三个注解都是@Component注解的别名。
也就是说:这四个注解的功能都一样。用哪个都可以。
只是为了增强程序的可读性,建议:

  • 控制器类上使用:Controller
  • service类上使用:Service
  • dao类上使用:Repository

他们都是只有一个value属性。value属性用来指定bean的id,也就是bean的名字。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/15 20:41:29

Docker部署前端项目,收藏这篇就够了

前置工作 1、需要准备的东西 一台Centos服务器并连接 我这是演示用的垃圾云,建议大家上阿里云、腾讯云等。 2、连接云服务器 连接服务器看文章: https://blog.csdn.net/qq_32442973/article/details/119840447 安装Docker环境 Docker有两个分支版本&a…

作者头像 李华
网站建设 2026/2/18 12:23:22

Python+Vue的大学生就业信息管理系统 Pycharm django flask

这里写目录标题项目介绍项目展示详细视频演示感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人技术栈文章下方名片联系我即可~解决的思路…

作者头像 李华
网站建设 2026/2/15 12:50:55

15 分钟获现场信号,30 分钟建指挥链路!分布式系统赋能救援 “秒响应”

进入二十世纪以来,全球气候异常加剧,环境破坏引发的连锁反应日益显著 —— 地震震级攀升、洪水波及范围扩大、台风登陆频次增多、山火蔓延速度加快,各类自然灾害不仅造成巨大的人员伤亡与财产损失,更对突发事件的应急响应速度、指…

作者头像 李华
网站建设 2026/2/19 0:04:08

自动化测试中的常见陷阱与规避

随着软件交付周期的不断缩短,自动化测试已成为保障产品质量的关键手段。然而,许多团队在实施过程中陷入重复性陷阱,导致投入产出比失衡。 一、常见陷阱深度解析 1. 过度追求覆盖率陷阱 现象:盲目要求100%测试覆盖率,…

作者头像 李华
网站建设 2026/2/17 8:53:40

6-4 WPS JS宏 不重复随机取值应用

1.示例:function 不重复随机取值(){var snew Set();if(10-1>8){while(true){var numWorksheetFunction.RandBetween(1,10);//RandBetween(1,10)为随机函数s.add(num);if(s.size8){break};//size为集合的个数}}var arr[...s]Console.log(${arr})}function 不重复随…

作者头像 李华
网站建设 2026/2/17 3:01:32

《余行论》第七篇:历史篇

第七篇:历史篇——文明如长河,兴衰皆余行引言:历史是宇宙的备忘录,还是人类的独白?历史是什么?是帝王将相的谱系,是战争与和平的循环,是生产力进步的阶梯,还是偶然事件的…

作者头像 李华