「java注解的作用」java注解到底有什么用

博主:adminadmin 2023-03-17 19:21:10 607

今天给各位分享java注解的作用的知识,其中也会对java注解到底有什么用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java 自定义的注解有什么作用

自定义注解,可以应用到反射中,比如自己写个小框架。

如实现实体类某些属性不自动赋值,或者验证某个对象属性完整性等

本人自己用过的验证属性值完整性:

@Target(ElementType.FIELD)   

@Retention(RetentionPolicy.RUNTIME)

public @interface IgnoreProperty {

}

然后实体类中:

public class TarResearch implements Serializable{

 @IgnoreProperty

 private static final long serialVersionUID = 1L;

 @IgnoreProperty

private  Integer researchId;

 @IgnoreProperty

 private TarUser userId;

 private String version;

 private String grade;

....

   } 

然后action类中  

// 验证数据完整性

  ClassTarResearch  userClass = TarResearch .class;

  Field[] field = userClass.getDeclaredFields();

  for (int i = 0; i  field.length; i++) {

   if (field[i].getAnnotation(IgnoreProperty.class) != null) {

    continue;

   }

   String fie = field[i].getName().substring(0, 1).toUpperCase()

     + field[i].getName().substring(1);

   Method method = userClass.getMethod("get" + fie);

   Object obj = method.invoke(u);

   if (obj == null) {

    sendResponseMsg(response, "数据错误");

    return null;

   }

  }

springboot注解、工厂特性创建对象

此注解的作用:用来标识这是一个springboot入口类,这个标识只能出现一次。

@SpringBootApplication 是一个派生注解|组合注解 等价以下三个:

以下是java中的元注解,用来修饰注解的注解。

1.通过main函数这种方式启动内部内嵌tomcat服务。

通过标注java入口方式为头给SpringApplication,并告知当前springboot主应用类是谁,从而启动springboot中tomcat容器。

2.SpringApplication.run(Application.class,args);

参数1:入口类类对象 目的让@EnableAutoConfiguration 自动配置spring时将@ComponentScan扫描到注解创建对象一并放入工厂。

参数2: main函数的参数 这个参数通过指定外部虚拟机参数形式覆盖应用内部默认参数。

我们application.yml中写的的参数是内部参数如:

server:

port: 8989

servlet:

context-path: /nono

外部虚拟机参数如下:

@RestController == @Controller + @ResponseBody

修饰范围: 用在类上,用在所有控制器上

作用: 用来实例当前对象为一个控制器对象,将控制中所有方法的返回值转换为json并响应到前端。

@Controller(实例化当前类为一个控制器)

@ResponseBody(将当前方法返回值转为json,响应给浏览器)

我们现在的开发方式都是前后端分离的:

@RequestMapping

作用:用来加入访问路径。

修饰范围:类(加入命名空间) 方法上(指定具体路径)

@GetMapping

作用:限定请求方式只能是GET,并指定路径。

修饰范围:方法上。

同样的还有:@PostMapping,@DeleteMapping,@PutMapping

Springboot = Spring 项目管理工厂特性 + springmvc控制器

1、创建单个自定义对象

注解方式:@Component 通用组件对象的创建注解

@Service标识业务层组件创建 @Controller控制器对象创建 @Repository用来创建DAO组件注解

(不是三层架构里的类,创建对象用@Component)

2、一次性创建多个组件对象包含复杂对象

复杂对象如Calendar 日历对象

@Configuration 配置注解|派生注解 修饰范围:用在类上 作用:相当于曾经spring.xml配置文件

@Configuration是派生注解:

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Component

@Bean 注解 修饰范围:方法上 作用:相当于spring.xml bean标签作用 用来创建这个对象在工厂的一个实例

@Component和@Configuration的效果一样,只是@Configuration在springboot中有表明是配置对象的意思

总结:日后在使用Springboot的过程中创建单个对象用@Component注解,创建多个对象使用@Configuration注解。

staters启动器:

spring-boot-starter-web 是一组方便依赖关系的描述符。

java@subscribe注解有什么用

java@Service用于标注业务层组件(注入dao)

@Service(“userService”)注解是告诉Spring,当Spring要创建UserServiceImpl的的实例时,bean的名字必须叫做”userService”,这样当Action需要使用UserServiceImpl的的实例时,就可以由Spring创建好的”userService”,然后注入给Action。

在Action只需要声明一个名字叫“userService”的变量来接收由Spring注入的”userService”即可。

Spring常用注解汇总:

1、Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。

2、Scope注解 作用域

3、Lazy(true) 表示延迟初始化

4、Service用于标注业务层组件

5、Controller用于标注控制层组件(如struts中的action)

java里的注解都有哪些?都有什么用处啊?

注释有 3 中基本类型a. 标记注释 -- 没有变量,只有名称标识。例如 @annotationb. 单一值注释 -- 在标记注释的基础上提供一段数据。如 @annotation(“data”)c. 完整注释 -- 可以包括多个数据成员,每个数据成员由名称和值构成。@annotation(val1="data1",val2="data2")Java 中提供 3 个内置注释类型a. Override ,只能用于方法 ( 不能用于类,包声明或者其他构造 )作用:可以保证编译时候 Override 函数的声明正确性用法: @Overridepublic void fun(){..}b.Deprecated 同样只能作用与方法作用:对不应再使用的方法进行注解用法: @Deprecated public void fun{...} // 它们说这个注释跟函数要同一行c.SupressWarnings 可以注释一段代码作用:关闭特定的警告信息,例如你在使用泛型的时候未指定类型用法: @SupressWarnings(value={"unchecked"}).. 代码Java 中还提供了四种元注释,专门负责注释其他的注释@Target 表示该注释可以用于什么地方。可用的 ElementType 参数包括:CONSTRUCTOR : 构造器的声明FIELD : 域声明 ( 包括 enum 实例 )LOCAL_VARIABLE : 局部变量声明METHOD : 方法声明PACKAGE : 包声明PARAMETER : 参数声明TYPE : 类、接口 ( 包括注解类型 ) 或 enum 声明@Retention 表示需要在什么级别保存该注释信息。可选的 RetentionPoicy 参数包括:SOURCE : 注释将被编译器丢掉CLASS : 注释在 class 文件中可用,但会被 VM 丢弃RUNTIME : VM 将在运行时也保留注释,因此可以通过反射机制读取注释的信息。

Java 什么是注解及注解原理详细介绍

1、注解是针对Java编译器的说明。

可以给Java包、类型(类、接口、枚举)、构造器、方法、域、参数和局部变量进行注解。Java编译器可以根据指令来解释注解和放弃注解,或者将注解放到编译后的生成的class文件中,运行时可用。

2、注解和注解类型

注解类型是一种特殊的接口类型,注解是注解注解类型的一个实例。

注解类型也有名称和成员,注解中包含的信息采用键值对形式,可以有0个或多个。

3、Java中定义的一些注解:

@Override 告诉编译器这个方法要覆盖一个超类方法,防止程序员覆盖出错。

@Deprecated 这个标识方法或类(接口等类型)过期,警告用户不建议使用。

@SafeVarargs JDK7新增,避免可变参数在使用泛型化时候警告”执行时期无法具体确认参数类型“,当然,也可以用@SuppressWarnings来避免检查,显然后者的抑制的范围更大。

@SuppressWarnings(value={"unchecked"}) 抑制编译警告,应用于类型、构造器、方法、域、参数以及局部变量。 value是类型数组,有效取值为:

all, to suppress all warnings

boxing, to suppress warnings relative to boxing/unboxing operations

cast, to suppress warnings relative to cast operations

dep-ann, to suppress warnings relative to deprecated annotation

deprecation, to suppress warnings relative to deprecation

fallthrough, to suppress warnings relative to missing breaks in switch statements

finally, to suppress warnings relative to finally block that don't return

hiding, to suppress warnings relative to locals that hide variable

incomplete-switch, to suppress warnings relative to missing entries in a switch statement (enum case)

javadoc, to suppress warnings relative to javadoc warnings

nls, to suppress warnings relative to non-nls string literals

null, to suppress warnings relative to null analysis

rawtypes, to suppress warnings relative to usage of raw types

restriction, to suppress warnings relative to usage of discouraged or forbidden references

serial, to suppress warnings relative to missing serialVersionUID field for a serializable class

static-access, to suppress warnings relative to incorrect static access

static-method, to suppress warnings relative to methods that could be declared as static

super, to suppress warnings relative to overriding a method without super invocations

synthetic-access, to suppress warnings relative to unoptimized access from inner classes

unchecked, to suppress warnings relative to unchecked operations

unqualified-field-access, to suppress warnings relative to field access unqualified

unused, to suppress warnings relative to unused code and dead code

4、注解的定义

使用 @interface 关键字声明一个注解

public @interface MyAnnotation1

注解中可以定义属性

String name default “defval”;

value是注解中的特殊属性

注解中定义的属性如果名称为 value, 此属性在使用时可以省写属性名

例如,声明一个注解:

@Retention(RetentionPolicy.RUNTIME)

public @interface MyAnno1 {

String msg();

int value();

}

关于java注解的作用和java注解到底有什么用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。