Java基础-注解

      现在的开发都推崇使用注解来进行开发,这样就可以免去XML配置了,学习注解之后就可以更好地理解注解是怎么工作的了。

     什么是注解:

      注解其实就是代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相对应的处理。

  注解其实就是两个作用:

   让编译器检查代码

   将数据注入到方法、成员变量、类上


     为什么要用注解:

     传统的方式,我们是通过配置文件(xml文件)来告诉类是如何运行的。但是有了注解技术之后,我们就可以通过注解来告诉类如何运行。

     例如:

     1、我们以前编写Servlet的时候,需要在web.xml文件配置具体的信息

   

使用了注解之后,可以直接在Servlet源代码上,增加注解,Servlet就被配置到Tomcat上了。也就是说注解可以给给、方法注入信息。


2、比如我们在编写service层时,需要导入Dao层,还需要编写setter、getter方法。


但是使用了注解之后,我们不需要再写setter、getter方法了。spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get


基本注解:

1、重写注解:@Override

如果我们重写父类的方法,就可以看见它了。

 @Override是告诉编译器要检查该方法是实现父类的方法,可以帮我们避免一些错误。

比如,我们在实现父类的printWin方法时,把printWin()写错成pntWin()时,那么编译器就会发现该方法并不会实现父类的方法,与注解冲突,于是就会显示错误提示我们。


2、抑制编译器警告注解:@SuppressWarnings

我们可以用它来让编译器不给予我们警告。

比如当我们在使用集合时,如果没有指定泛型,那么会提示安全检查警告


当我们在加上注解之后,那么编译器就不会给我们警告了。


自定义注解基础:

1、标记注解:没有任何成员变量的注解,@Overried就是一个标记注解


2、元数据注解:定义带成员变量的注解。


使用注解:

1、下面有一个add的方法,需要username和age参数,我们通过注解来让该方法拥有这两个变量;


2、我们也可以在声明属性时,给出默认值。


在修饰的时候就不用给出具体值了


3、还有一种特殊的情况,如果注解上只有一个属性,并且属性的名称为value,那么在使用的时候,我们可以不写value,直接赋值给它就行


使用时:


为什么使用注解就可以把变量注入到方法上,是怎么注入的:利用的是反射技术。

步骤:

反射出该类的方法

通过方法得到注解上具体的信息

将注解上的信息注入到方法上


这时要在自定义注解类中加@Retention(RetentionPolicy.RUNTIME),要不就会出现异常


注入对象到方法上:

  • Person类,定义username和age属性,拥有uername和age的getter和setter方法

  • PersonDao类,PersonDao类定义了Person对象,拥有person的setter和getter方法

  • 现在我要做的就是:使用注解将Person对象注入到setPerson()方法中,从而设置了PersonDao类的person属性


步骤:

①: 自定义一个注解,属性是和JavaBean类一致的


②:编写注入工具


③:总结一下步骤

其实我们是这样把对象注入到方法中的:

  • 得到想要类中注入的属性

  • 得到该属性的对象

  • 得到属性对应的写方法

  • 通过写方法得到注解

  • 获取注解详细的信息

  • 将注解的信息注入到对象上

  • 调用属性写方法,将已填充数据的对象注入到方法中

把对象注入到成员变量上:

步骤:

1、在成员变量上使用注解


2、编写注入工具


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值