注明:由于Java的注解类知识的匮乏,因此向《尚硅谷宋红康老师Java基础的课程视频》做出此学习笔记。
使用方式:把Annotation当作一个修饰符使用,用于修饰他支持的程序元素。
注解
*概念:说明程序的,给计算机看的。
*注释:用文字描述程序的,给程序员看的。
*定义:注解(Annotation),也叫元数据,一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类,接口,枚举是同一个层次。它可以声明在包、类、字段、方法参数等的前面,用来对这些元素进行说明,注释。
*概念描述:
**JDK1.5之后的新特性
**说明程序的
**使用注解:@注解名称
*作用分类:
**编写文档:通过代码里标识的元数据【注解】生成文档【生成文档doc文档】
**代码分析:通过代码里标识的元数据【注解】对代码进行分析【使用反射】
**编译检查:通过代码里标识的元数据【注解】让编译器能够实现基本的编译检查【Override】
示例一:生成文档相关的注解
写一个注解类并保存到桌面的任意文件夹,代码如下:
/** * 注解javadoc演示 * * @autho yuren * @version 1.2 * @since 1.5 */ public class person { /** * 计算两数的和 * @param a 整数 * @param b 整数 * @return 两数的和 */ public int add(int a, int b){ return a+b; } }
在【shift+右键】打开自己创建的文档中写下的java代码,
输入命令 javadoc person.java (这里的类应该用大写,我手快创建类的时候创建错误了)。
命令结束,产生以下文件(包括javadoc文档)
实现效果图:
@author 标明开发该类模块的作者,多个作者之间使用,分割
@version 标明该类模块的版本
@see 参考转向,也就是相关主题
@since 标明从哪个版本开始增加的
@param 对方法中某参数的说明,如果没有参数就不能写
@return 对方法返回值的说明,如果方法的返回值类型是void的就不能写
@exception 对方法可能抛出的异常进行说明,如果方法没有用throws显式抛出异常就不能写其中
@param @return 和 @exception这三个标记都是只能用于方法的
@param的格式要求: @param 形参名 形参类型 形参说明
@return的格式要求: @return 返回值类型 返回值说明
@exception的格式要求: @exception 异常类型 异常说明
@param 和 @exception 可以并列多个
这段截图中,我们看到的 下列带@的都是注解
@Description 获取指定ID的员工对象
@author shkstart
@date 2019年2月12日上午10:47:46(此时间是根据课件的时间写的,如果是自己建立的工程这里的时间将不一样)
@param id
@return
@throws TeamException
这里对应着注解的解析
例如:Paramaters 这个参数的是id 对应的注解是 @param id
Returns 相当于读取了 @return 这个注解
示例二:在编译时进行格式检查(JDK内置的三个基本注解)
@Override 限定重写父类方法,该注解只能用于方法
(当我们加上Override这个注解,表示我们要重写父类或接口当中的方法)
@Deprecated 用于表示所修饰的元素(类,方法等)已过时。通常是因为所修饰的结构危险或存在更好的选择
@SuppressWarning 抑制编译器警告
示例三: 跟中diamond依赖性,实现替代配置文件功能
#Servlet3.0提供了注解(annotation),让我们不在需要通过web.xml 文件进行Servlet部署
说明:由于以前JavaWEB项目需要通过Servlet(这是个接口),因此实际开发中我们需要提供这个接口的实现类,
可以看到这里用的是 LgoinServlet 去继承 HttpServlet 这个类,而 HttpServlet 又去实现 Servlet 这个接口。在Servlet3.0之前,我们需要在 web.xml 文件中配置 Servlet 的信息。配置信息如下图
这里的 /login 代表我们从浏览器的网址中的 login(未注册会员要进入网站,会有登录网页),即网址里的Login匹配的就是wen.xml的这个 /login 了
因此servlet3.0以前进入login需要写这么多东西()如下图
这段代码的意思是,客户通过输入网址,从浏览器进入javaWEB开发的某个类,实现顺序是/login>>LoginServlet(标签servlet-mapping)>>LoginServlet(标签servlet)【servlet-mapping标签与servlet标签要同名,才能实现进入,因此自定义一个名字LoginServlet】>>com.servlet.LoginServlet
这段代码意味着,当用户从网址进入 login这个地址的时候,我相当于进入了com.servlet.LoginServlet 这个类,进而用户可以使用这个类所提供的功能了。
现在通过servlet3.0用注解的方式实现,不用再写那么多代码,现在换成 @WebServlet("/login") 就可以实现这个功能了。如下图
上图代码解析:当浏览器进入 /login 的时候,用户通过注解 @WebServlet("/login") 进入到 LoginServle 这个类
spring框架中关于"事务"的管理
以前需要写配置文件 指明事务的管理情况
如:isolation (隔离级别)等,现在可以用注解来实现配置文件: