news 2026/4/23 19:07:41

(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/4/23 12:29:26

kubesphere-更换新的harbor

背景介绍:原来用的harbor磁盘空间比较满了,现在准备更换一台新搭建的harbor.现在就是怎么配置多个harbor的问题了,服务器上面使用的是containerd的运行环境。只要把 两个 Harbor 都改用 hosts.toml 文件 即可, 不要再在 config.to…

作者头像 李华
网站建设 2026/4/23 17:12:54

Redis-11内存管理与性能优化

11 内存管理与性能优化 🎯 学习要点 内存上限与淘汰策略慢查询监控与采样批量与管道优化 📖 名词解释 maxmemory:Redis 允许使用的最大内存上限。淘汰策略:在内存达到上限时选择哪些键被删除(LRU/LFU/TTL 等&#xff0…

作者头像 李华
网站建设 2026/4/23 13:59:34

2025年12月9日,OpenAI发布的ChatGPT-5.2:人工智能的重大跃进与未来之门

2025年12月9日,OpenAI发布了备受期待的ChatGPT-5.2版本。这一版本不仅在技术上进行了深度优化,更在多个方面实现了前所未有的突破,进一步改变了我们与AI互动的方式。在刚刚发布的这一版本中,ChatGPT-5.2的表现堪称一场AI领域的“革…

作者头像 李华
网站建设 2026/4/23 13:56:42

从动态图形到 HDR 合成,AE 2025 一站式搞定影视特效安装

Adobe After Effects 2025(简称 AE 2025)是 Adobe 公司推出的专业级影视后期特效与动态图形设计工具,围绕动画制作、3D 合成、性能优化三大核心应用方向完成功能迭代,同步增强多场景适配性与跨软件协同能力,可满足影视…

作者头像 李华
网站建设 2026/4/23 17:23:59

SpringBoot 跨域报错

跨域问题产生的原因2. 违反安全规范W3C 的 CORS 规范和各大安全审计标准(如 OWASP)都明确指出:🛡️ 核心原因:防止敏感数据泄露当你配置 allowedOriginPatterns("*") 并且允许凭据(allowCredenti…

作者头像 李华