博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于annotation的认识
阅读量:5279 次
发布时间:2019-06-14

本文共 1573 字,大约阅读时间需要 5 分钟。

一·介绍

注解(Annotations)是一种元数据,提供了程序之外的一些程序信息。注解并不会直接影响被注解的代码。注解有很多用法:

1. 为编译器提供信息(Information for the compiler) ——编译器能直接使用注解检查错误(detect errors)和禁止警告(suppress warnings)。
2. 编译期和部署时处理(Compile-time and deployment-time processing) —— 软件工具可以使用注解生成代码,XML文件等待。
3. 运行期处理(Runtime processing) —— 一些注解可以在运行期被检测。

注解是一种特殊种类的元数据,它能够关联Java语言中不同元素和结构。有意思的是,在Java生态系统中大多数使用样板XML描述符的地方,注解在消除这些XML描述符上做出了很大的贡献。注解引入了新的,类型安全以及非常强健的配置和个性化技术。注解本身对它所注解的元素不会造成任何直接的影响。但是,依靠注解和它的定义方式,它们可以被Java编译器(注解最好的实例就是我们前面的文章中所使用的@Override注解)、注解处理器和运行时代码使用反射和其他的虚拟机内省技术使用。

二·举例

1> @named和inject

package com.javabeat.injectandnamedannotations;
  import javax.inject.Inject;
  import javax.inject.Named;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.stereotype.Service;
  @Named
  public class ProductService {
      @Inject
      private ProductDao productDao;
      public Product getProductDetail(String productId) {
          Product product = productDao.getProduct(productId);
          return product;
      }
  }
2>@requestscope
 
@Component
@Scope(value = WebApplicationContext.SCOPE_REQUEST,proxyMode= ScopedProxyMode.INTERFACES)
public class RequestBean implements IRequestBean {
    private UUID uuid;
    public RequestBean() {
        uuid = UUID.randomUUID();
    }
    public void printId() {
        System.out.println("RequestBean:" + uuid);
    }
3>@model
@Controller
public class HelloWorldController {
    @ModelAttribute("attributeName")
    public String addAccount(@RequestParam String abc) {
        return abc;
      }
    @RequestMapping(value = "/helloWorld")
    public String helloWorld() {
        return "helloWorld";
          }
   }

转载于:https://www.cnblogs.com/hamac/p/10547861.html

你可能感兴趣的文章
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
寄Android开发Gradle你需要知道的知识
查看>>
css & input type & search icon
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
0320-学习进度条
查看>>
MetaWeblog API Test
查看>>
移动、尺寸改变
查看>>
c# 文件笔记
查看>>
类和结构
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
线程池的概念
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>