注解

注解验证参数的合法性

微笑、不失礼 提交于 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

IDEA②:类注解和方法注解(自定义模板)

孤街醉人 提交于 2021-01-02 06:25:08
注解 类注解 1. 位置:File -> sesstings... => Editor -> File and Code Templates 2. 在 Files 标签下找到 Class 文件,其中:#parse("File Header.java") 指示的就是类注解引用的文件 3. 在 Includes 标签找到上面引用的文件 4. 修改: a. 直接修改:会影响其他引用该文件的文件的注解 b. Files 左上角有一个 "+" 号,自定义一个吧! c. 可使用的函数可以在下面 Description 里面找到 自定义模板 其实就是自定义一个可用模板,比如 main 函数的 psvm, 此处以自定义一个方法模板为例: 1. 位置:File -> sesstings... => Editor -> Live Templates 2. 点击右侧 "+" ,选择 "2.Template Group" 新建一个自己的模板分组,如:"MyGroup" 3. 选中刚新建的分组,继续点击右侧 "+" ,选择 "1.Live Template" 新建一个自己的分组: a. "Abbreviation" 栏填入调用时使用的缩写,如:"mma" b. "Description" 栏填入完整描述,如:"My Method Annotation" c. "Template text" 栏填入模板,如:

注解的解析

让人想犯罪 __ 提交于 2020-11-26 03:11:54
解析自定义注解 这个章节主要是学习解析一个类中的注解;包括类上,构造上,属性上,方法上的注解的信息解析。 自定义的注解 这个自定注解是运行时会被保留的注解,出现的地方没有限制,主要是方便测试。 package anotations; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * 自定义注解 * Created by Administrator on 2016/11/26. */ @Retention(RetentionPolicy.RUNTIME) public @interface Controller { String str(); int id() default 0; Class<Long> gid(); } 注解使用类 这个类主要是给注解赋值,同时对应不同的地方。 package controller; import anotations.Controller; /** * Created by Administrator on 2016/11/26. */ @Controller(str="class",id=1,gid=Long.class)//在类前面 public class ControllerDemo { @Controller

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

JAVA自定义注解SpringAOP

。_饼干妹妹 提交于 2020-04-17 04:25:12
【推荐阅读】微服务还能火多久?>>> 前言:Annotation(注解)是JDK5.0及以后版本引入的,它的作用就是负责注解其他注解。现在开发过程中大家都已经放弃了传统的XML配置的方式改为注解的方式,既简单又简洁,方便管理和维护。目前引用第三方jar包的注解都是解决技术上的问题,然而我们在工作中也需要通过注解解决业务上的一些问题,所以就得用到自定义注解。 1.自定义一个注解 创建一个 @interface的文件,则表示这是一个注解类 /* * 自定义注解 */ @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited public @interface SecureValid { String desc() default "身份和安全验证开始..."; } 2.注解的属性描述 2.1 @Target 用于描述注解的使用范围(即:被描述的注解可以用在什么地方),其取值有: ElementType.CONSTRUCTOR 用于描述构造器。 ElementType.FIELD 用于描述域。 ElementType.LOCAL_VARIABLE 用于描述局部变量 ElementType.METHOD 用于描述方法 ElementType.PACKAGE 用于描述包

SpringMVC 4.0常用注解

我的梦境 提交于 2020-03-01 20:46:31
注解的出现终结了使用XML配置文件的年代,它让程序拥有更高的可读性,可配置性与灵活性。上一篇介绍的SpringMVC 2.5版本的注解使用已经发布了很多年了,如今项目中使用的4.0版本发生了很大的变化。今天我们就一起来看看SpringMVC 4.0中那些常用的注解。 1.Controller Controller控制器是通过服务接口定义的提供访问应用程序的一种行为,它解释用户的输入,将其转换成一个模型然后将试图呈献给用户。SpringMVC 使用Controller注解定义控制器,它还允许自动检测定义在类路径下的组件并自动注册。如想自动检测生效,需在XML头文件下引入 spring-context: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans

hibernate4使用注解

蓝咒 提交于 2020-03-01 13:43:13
借用官方的demo稍加改编进行分析, 1.pom.xml配置参考 http://my.oschina.net/u/555061/blog/506049 2.hibernate.cfg.xml配置实体关系表, <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://192.168.191.1:3306/mysql</property> <property name="connection.username">root</property> <property

Java反射及依赖注入简单模拟

泪湿孤枕 提交于 2019-12-18 18:46:59
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、编写Dao类 package cn.com.songjy.annotation; import java.util.Date; public class MyDao { public String time(){ return "你好,现在的时间是:" + new Date(); } } 二、编写属性文件【my.properties,类似spring的配置文件】并将MyDao类配置到其中,如下: myDao=cn.com.songjy.annotation.MyDao 三、编写读取属性配置文件的类 package cn.com.songjy.annotation; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class PropertiesUtil { private static InputStream in = PropertiesUtil.class.getClassLoader() .getResourceAsStream("my.properties"); public

DBGenerator:获取PO注解信息生成表sql

痞子三分冷 提交于 2019-12-14 10:34:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 开发过程中,常常创建了PO之后,还要去数据库里创建对应的表,相似的过程,却要做两次,有没有感觉很麻烦?使用Hibernate可以生成表,还要去配置,而且无法得到表创建sql,于是 DBGenerator 应运而生了。DBGenerator是一个工具类,能获取PO类的注解信息,自动生成表创建SQL,节省了很多时间,同时也能保证测试环境和生产环境表的一致性。 1. jar包依赖 commons-lang-2.6.jar hibernate3.jar 2. 源码 package com.cg.db; import java.beans.IntrospectionException; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Method; import javax.persistence.Column; import javax.persistence.Id; import javax.persistence.Table; import org.apache.commons.lang.StringUtils; import com.sun.xml.internal

nutz,今晚来一发(17): nutz跟quartz怎样玩耍?

一笑奈何 提交于 2019-12-07 02:35:03
例如, 一个Job需要使用dao/service等ioc里面的对象,应怎么办呢? -----------------上期没人回答问题的分割线------------------------------------- 上一期没人给出一个答案,拖了好多天依然没人回答,好桑心... 以下讨论不涉及 自定义ClassLoader, javaagent,inst包 的话题. 第一个问题, 一个类加上@IocBean注解,发生了什么事: 什么都没有发生, 仅仅是添加了一个可供读取的class文件内的几个属性. 无论UserServiceImpl标注了任何注解,下面的代码的运行没有任何区别 UserService us = new UserServiceImpl(); us.insert(user); 注解对这段代码的运行没有任何影响 . 啊啊啊? 那你会问: 那Ioc做了啥?? 先看代码: UserService us = ioc.get(UserService.class); us.insert(user); 跟直接new的区别是什么? 是ioc.get方法可以写一堆逻辑,而new只是一个字节码的操作符. 换句话说: ioc.get比new多很多代码, 里面可以创建对象,创建引用,设置属性,触发事件 注解并非什么魔法,它只是class文件里面的一个attr, 除非有程序去读取它