黑马程序员技术交流社区

标题: 关于注解的问题 [打印本页]

作者: 金龙    时间: 2012-7-31 16:52
标题: 关于注解的问题
看张孝祥老师的高新技术视频,里面有讲到注解。
其中老师给讲的这三个注解@Override(复写的时候写上,会提示你是否正确覆盖)、@SuppressWarnings(取消已过时警告)和@Deprecated(自己标注已过时),就这三个明白什么意思以及感觉很有用处

但是到后面,就开始不明白注解的应用场景了,除了这三个之外,注解还有什么应用场景呢?它是实际用途到底是什么呢?
作者: 王志明    时间: 2012-7-31 17:02
使用spring和JPA的时候你会接触到大量的注解:
比如,一个Service里面要有一个Dao,这时候就可以使用注解
public class Service {
   // 这里使用注解,就不用自己手动编写代码去处理了,很方便
    @Resource
    private Dao dao;
}

// spring会根据这个注解创建这个类的实例,上面那个标了@Resource的地方spring就会把这个Dao对象注入进去
@Repository
Public class Dao {
    public void save(...) {...}
    public void update(...) {...}
    ....
}

作者: 尤洋    时间: 2012-7-31 17:53
其实就是java源文件需要与配置文件同步,不同步就会出错。
为了解决这个问题,就要把这两部分放在一起进行维护,
而注解除了(1)包含功能性的实现代码,恰好(2)还可以添加元数据(实现维护),
(1)特性导致注解能简化程序
(2)特性决定了它具有维护数据的作用
作者: 金龙    时间: 2012-7-31 18:24
王志明 发表于 2012-7-31 17:02
使用spring和JPA的时候你会接触到大量的注解:
比如,一个Service里面要有一个Dao,这时候就可以使用注解
pu ...

虽然不太懂,但是后面能碰见到就OK了,现在先给记住,谢谢
作者: 金龙    时间: 2012-7-31 18:25
尤洋 发表于 2012-7-31 17:53
其实就是java源文件需要与配置文件同步,不同步就会出错。
为了解决这个问题,就要把这两部分放在一起进行 ...

同理,虽然不太懂,但我记下了,谢谢
作者: 赵俊杰    时间: 2012-7-31 19:08
@Override,恐怕这个是最直观的了,强制判断您的覆写是否正确。
作者: 王峰    时间: 2012-7-31 19:42
Annotation 是 JDK 1.5 增加的语言特性,主要为 Java EE 5 发布作为铺垫的,从 Java EE 5
开始使用了大量的 Annotation。比如:EJB3,JPA,JWS 等等都将复杂的 XML 配置文件作为可
选了,由 Annotation 取而代之。

用注释(Annotation)来标识要作绑定的类和属性等,这可以极大简化了开发的工作量。

Annotation 一般可以取代复杂的配置文件,用于告之容器管理者某个类、方法的行为

Annotation(注释)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注释是以‘@注释名’在代码中存在的,根据注释参数的个数,我们可以将注释分为:标记注释、单值注释、完整注释三类。它们都不会直接影响到程序的语义,只是作为注释(标识)存在,我们可以通过反射机制编程实现对这些元数据的访问。另外,你可以在编译时选择代码里的注释是否只存在于源代码级,或者它也能在class文件中出现。

元数据的作用
如果要对于元数据的作用进行分类,目前还没有明确的定义,不过我们可以根据它所起的作用,大致可分为三类:
编写文档:通过代码里标识的元数据生成文档。
代码分析:通过代码里标识的元数据对代码进行分析。
编译检查:通过代码里标识的元数据让编译器能实现基本的编译检查。

基本内置注释

@Override


Java代码

1. package com.iwtxokhtd.annotation;
2.
7. public class OverrideDemoTest {
8.  
9.     //@Override
10.     public String tostring(){
11.         return "测试注释";
12.     }
13. }

package com.iwtxokhtd.annotation;

public class OverrideDemoTest {

//@Override
public String tostring(){
return "测试注释";
}
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2