java中annotation

介绍
注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据(用来描述数据的数据)的访问。另外,你可以在编译时选择代码里的注解是否只存在于源代码级,或者它也能在class文件、或者运行时中出现(SOURCE/CLASS/RUNTIME)。Java中注解形式 @(注解名)

作用分类:

①编写文档:通过代码里标识的元数据生成文档【生成文档doc文档】

② 代码分析:通过代码里标识的元数据对代码进行分析【使用反射】

③编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查【Override】

常见注解
Java自带注解

@ override (表示覆盖的方法)@ deprecated(表示方法已经过时) @ suppvisewarning(表示忽略警告)

常见第三方注解

spring:@Autowired,@Service,@Repository;

mybatis:@InsertProvider,@UpdateProvider,@Options;

注解分类
按照运行机制分类
源码注解;

编译时注解(在源码和.class中都存在):@override;@Deprecated;@Suppvisewarnings

运行时注解(在运行阶段还会起作用,甚至会影响程序的运行逻辑):@Autowired

按照注解来源分类
来自jdk的注解,来自第三方的注解,自定义注解,元注解(给注解进行注解);

元注解:

@Target():注解的作用域

@Retention():注解的生命周期

@Inherit:允许子类继承,父类如果有注解,则子类会继承该注解信息

@Document:生成Javadoc会包含注解信息

自定义注解
package myannotation.test.com;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//表明该注解可以在方法和类上使用
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)//运行时
@Inherited//可以继承
@Documented

public @interface myannotation {//使用interface关键字
//成员类型受到限制
//合法类型包括基本类型以及String,class,annotation,enumeration

//如果注解的成员只有一个那么名字必须是value()
//在使用时可以忽略成员名和复制号(=)

//注解类可以没有成员
//此时称为标识注解

String desc();//成员以无参数无异常方式声明
String author();
int age() default 18;//可以用default来指定默认值

}

使用注解

package extense.test.com;
import myannotation.test.com.*;

public class Main {
@myannotation(author = “ming”, desc = “i’m hansome”,age=20)
public String face() {

	return null;
}

}
解析注解
通过反射获取类,函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑。

本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js前端技术的大学生第二课堂系统,旨在为大学生提供一个便捷、高效的学习和实践平台。项目包含了完整的数据库设计、后端Java代码实现以及前端Vue.js页面展示,适合计算机相关专业的毕设学生和需要进行项目实战练习的Java学习者。 在功能方面,系统主要实现了以下几个模块:用户管理、课程管理、活动管理、成绩管理和通知公告。用户管理模块支持学生和教师的注册、登录及权限管理;课程管理模块允许教师上传课程资料、设置课程时间,并由学生进行选课;活动管理模块提供了活动发布、报名和签到功能,鼓励学生参与课外实践活动;成绩管理模块则用于记录和查询学生的课程成绩和活动参与情况;通知公告模块则实时发布学校或班级的最新通知和公告。 技术实现上,后端采用SSM框架进行开发,Spring负责业务逻辑层,SpringMVC处理Web请求,MyBatis进行数据库操作,确保了系统的稳定性和扩展性。前端则使用Vue.js框架,结合Axios进行数据请求,实现了前后端分离,提升了用户体验和开发效率。 该项目不仅提供了完整的源代码和相关文档,还包括了详细的数据库设计文档和项目部署指南,为学习和实践提供了便利。对于基础较好的学习者,可以根据自己的需求在此基础上进行功能扩展和优化,进一步提升自己的技术水平和项目实战能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值