news 2026/5/27 4:51:49

(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/5/26 14:47:35

前端设计模式:详解、应用场景与核心对比

前端设计模式:详解、应用场景与核心对比 前端设计模式是解决前端开发中重复出现的问题的标准化解决方案,涵盖创建型、结构型、行为型三大类核心模式,同时包含前端特有的适配型模式(如发布-订阅、MVVM等)。本文结合前端…

作者头像 李华
网站建设 2026/5/27 4:23:36

JoltPhysics球体碰撞边缘优化:从理论到工程实践

JoltPhysics球体碰撞边缘优化:从理论到工程实践 【免费下载链接】JoltPhysics A multi core friendly rigid body physics and collision detection library, written in C, suitable for games and VR applications. 项目地址: https://gitcode.com/GitHub_Trend…

作者头像 李华
网站建设 2026/5/22 7:57:53

30亿参数掀起企业AI革命:IBM Granite 4.0如何重塑部署范式

30亿参数掀起企业AI革命:IBM Granite 4.0如何重塑部署范式 【免费下载链接】granite-4.0-h-small-bnb-4bit 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/granite-4.0-h-small-bnb-4bit 导语 当企业还在为传统大模型部署的高昂成本和资源需求发愁…

作者头像 李华