注解@Override、@Repository、@Service、@Autowired、@Controller、@RequestMapping

@Override、@Repository、@Service、@Autowired、@Controller、@RequestMapping

这些都是 Java 开发中常用的注解(Annotation),主要用于简化代码、实现特定功能或标记类 / 方法的作用,尤其在 Spring 框架中被广泛使用。以下是它们的详细说明:

1. @Override

  • 核心作用:强制检查当前方法是否真的重写了父类(或接口)中的方法。
  • 底层原理
    是 Java 自带的标记型注解(没有属性),仅在编译期生效。编译器会验证:
    • 父类中是否存在方法名、参数列表完全一致的方法(方法签名相同);
    • 方法返回值类型是否兼容(协变返回类型除外);
    • 访问修饰符是否合法(子类重写方法不能缩小父类方法的访问范围)。
  • 使用场景
    重写任何父类方法时(如Object类的toString()equals(),或自定义父类 / 接口的方法)。
  • 典型错误
    若方法名拼写错误(如toStrng()),或参数列表与父类不一致,编译器会直接报错,避免运行时逻辑错误。
  • 示例
class Parent {
    public void print() {}
}

class Child extends Parent {
    @Override  // 正确:重写父类print()
    public void print() {}
    
    // @Override 错误:父类中没有print(int)方法,编译报错
    public void print(int a) {}
}

2. @Repository

  • 核心作用:标记数据访问层(DAO)的实现类,是 Spring 的 ** stereotype 注解 **(用于标注组件类型)。
  • 底层原理
    • @Repository标记的类会被 Spring 的ComponentScan扫描到,并自动注册为容器中的 Bean(默认 Bean 名称为类名首字母小写,如UserDaoImpluserDaoImpl)。
    • 额外功能:Spring 会为该类织入 AOP 切面,自动将数据库相关异常(如SQLException)转换为 Spring 统一的DataAccessException(方便异常统一处理)。
  • 使用场景
    所有与数据库交互的类(如 MyBatis 的 Map
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值