annotation

注解验证参数的合法性

微笑、不失礼 提交于 2021-02-17 13:40:12
一、定义需要验证的参数类型 package cn.com.songjy.annotation; public enum ValidateType { NotNull,Length,Number } 二、编写注解类 package cn.com.songjy.annotation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface ValidateAnnotation { public ValidateType type(); public String errorMsg(); public int length() default 0; } 三、验证参数 package cn.com.songjy.annotation; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; public class ValidateTools { public static

Android中Annotation使用

安稳与你 提交于 2020-11-22 08:31:56
首先创建一个项目: 这个项目很简单,就三个类,一个activity,一个注解,一个注解工具类,首先看一下activity中的代码: package com.gefufeng.annotationdemo; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity { @ViewInject(value = R.id.text,defaultText = "你好注解") private TextView text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); InjectUtils.init(this); } } 这个activity非常简单,就是为了演示annotation用的,其中有一个Textview,id为R.id.text,然后我为它加上了一个自定义注解Viewinject,下面看一下这个注解: package com.gefufeng

spring注解入门

旧城冷巷雨未停 提交于 2020-04-19 08:43:43
元注解:   元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:     1. @Target ,     2.@Retention,     3.@Documented,     4.@Inherited   这些类型和它们所支持的类在java.lang.annotation包中可以找到。下面我们看一下每个元注解的作用和相应分参数的使用说明。 ================================================================================= @Target:    @Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。   作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)   取值(ElementType)有:     1.CONSTRUCTOR:用于描述构造器     2.FIELD:用于描述域

Annotation之ElementType.PACKAGE

只谈情不闲聊 提交于 2020-04-17 04:09:36
【推荐阅读】微服务还能火多久?>>> Annotation之ElementType.PACKAGE Annotation的出现,给优美的 Java 再添加了更广阔的空间,让你可以设计出更加完美,更加叹为观止的程序。 项目关系,用到了这个东东在满天下泛滥的ElementType.TYPE,ElementType.METHOD现在,Google下,就可以发现,用ElementType.PACKAGE真的少得可怜。 正因为如此,写下此日志,给有需要的人一些参考--有关ElementType.PACKAGE 之前还是温习下ElementType的其它各个元素 ElementType.TYPE (class, interface, enum) ElementType.FIELD (instance variable) ElementType.METHOD ElementType.PARAMETER ElementType.CONSTRUCTOR ElementType.LOCAL_VARIABLE ElementType.ANNOTATION_TYPE (应用于另一个注解上) ElementType.PACKAGE 当一个Annotation接口被声明为 @Target(value=ElementType.PACKAGE)时,它即是对包的修饰注释,看下面的例子 package com.xu

Hibernate中的Annotation注解与XML配置的使用

岁酱吖の 提交于 2020-03-12 17:07:28
通过XML配置来实现持久化 : 首先我们来建立一个实体类: package com.hibernate.model; public class Student { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.hibernate

iOS定位服务与地图应用开发:高德地图开发

半腔热情 提交于 2020-03-01 14:04:48
由于博客迁移至 www.coderyi.com ,文章请看 http://www.coderyi.com/archives/419 之前工作在一家智能设备的公司,做过一个亲友定位监控系统,类似现在比较流行的360儿童手环。所以这里简单介绍定位与地图。 1 定位服务 iOS设备提供三种不同定位途径,蜂窝式移动电话基站定位;WiFi定位,通过查询一个WiFi路由器的地理位置信息,比较省电;GPS卫星定位,通过3~4颗卫星定位,最为准确,但是耗电量大。iOS系统如果能够接收GPS信息,那么设备优先采用GPS,其次是WiFi,最后是基站,开发人员不能选择哪种定位方式。 定位服务使用CoreLocation框架,主要使用CLLocationMananger、CLLocationManangerDelegate和CLLocation三个类,CLLocationMananger是定位服务管理类,获取设备的位置信息,CLLocationManangerDelegate是代理协议,CLLocation封装了位置信息。 这里要注意,CLLocationManangerDelegate 的locationManager:didUpdateToLocation:fromLocation:方法得到的坐标是火星坐标,这个原因你懂得,所以需要转换成真实的地理坐标。我使用的是一个第三方的CSqlite类

注解(Annotation)--注解处理器

一个人想着一个人 提交于 2020-02-29 03:00:47
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。 注解处理器类库(java.lang.reflect.AnnotatedElement):   Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Annotation类型的父接口。除此之外,Java在java.lang.reflect 包下新增了AnnotatedElement接口,该接口代表程序中可以接受注解的程序元素,该接口主要有如下几个实现类:   Class:类定义   Constructor:构造器定义   Field:累的成员变量定义   Method:类的方法定义   Package:类的包定义   java.lang.reflect 包下主要包含一些实现反射功能的工具类,实际上,java.lang.reflect 包所有提供的反射API扩充了读取运行时Annotation信息的能力。当一个Annotation类型被定义为运行时的Annotation后,该注解才能是运行时可见,当class文件被装载时被保存在class文件中的Annotation才会被虚拟机读取。   AnnotatedElement 接口是所有程序元素(Class

Spring and Springboot annotations for DI

大憨熊 提交于 2020-02-28 12:38:03
Basic annotaions to describe a bean: | Annotation | Meaning | +------------+-----------------------------------------------------+ | @Component | generic stereotype for any Spring-managed component | | @Repository| stereotype for persistence layer | | @Service | stereotype for service layer | | @Controller| stereotype for presentation layer (spring-mvc) | The above annotations can have a optional element: String value. The value may indicate a suggestion for a logical component name, to be turned into a Spring bean in case of an autodetected component. @Autowired Marks a constructor, field,

[翻译] hibernate映射继承关系(一):一张表对应一整棵类继承树

十年热恋 提交于 2019-12-16 10:16:00
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 英文原址 网上这个主题的文章不在少数,这个系列的文章的部分价值在于给出了注解模式( Annotation )的例子。 文章易懂,权当增强记忆,捎带着练习下翻译(翻译不当之处请指出)。 Hi bernate中继承关系的简介 : java 是一种面向对象语言,它可以实现继承关系。然而,继承却是 " 对象模型 - 关系模型 " 不匹配的最显而易见的方面之一。面向对象系统能够轻松的对“ is a ”和“ has a ”关系进行建模。而关系模型只能表达两个实体间的 "has a " 关系。 hibernate 能够把有关联的表映射为对象,但你需要根据需要来选择不同的映射策略。 Hibernate继承关系映射策略分为三种: 一张表对应一整棵类继承树 、一个类对应一张表、每一个具体类对应一张表。 之一:一张表对应一整棵类继承树(子类和父类共享同一张表) 假设我们有一个 Person 类及其子类 Employee. 每个类包括如下属性: * class Person - firstname - lastname * class Employee - joining_date - department_name 在“ 一张表对应一整棵类继承树 ” 这种模式中,继承树上的所有类的数据都存储在一张表上,鉴别器字段(

Java自定义Annotation方法

Deadly 提交于 2019-12-07 11:49:44
1. 基本语法 Java代码 import java.lang.annotation.ElementType; import java.lang.annotation.Target; // The @Bind tag. @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Bind { public String name(); public int time() default 0; } 以上是一个用于Method级的简单的@Bind注解类,比较有点象接口的结构,事实上,与其它任何Java接口一样,注解也将会编译成class文件。 /** * Use the @Bind tag. */ public class BindCase { @Bind(name="case", time=1) public void method(){ // do something.. } public void method1(){ // do something.. } @Bind(name="case1", time=20) public void method2(){ // do something.. } } 编写注解处理器: 在 JASE 1.5扩展了了反射机制的API