美文网首页
Spring之 自定义注解

Spring之 自定义注解

作者: 刘小刀tina | 来源:发表于2020-02-15 22:11 被阅读0次

    1. 注解分为两种 : 内置注解(jdk自带的注解) 和 自定义注解()

    @SuppressWarnings 在程序前面加上可以 在javac编译中去除警告
    @Deprecated 带有标记的包,方法 ,字段 说明其过时
    @Overricle 说明该方法是将父类的方法重写

    2. 自定义注解

    @SetTable(value="t_user")
    public class User {
    
        @SetName(value = "tina")
        private String username;
    
        @SetName(value = "12345")
        private String password;
    
    }
    
    
    @Retention(RetentionPolicy.RUNTIME)
     @interface SetTable {
    
        String value();
    }
    
    public class UserTest {
        public static void main(String[] args) throws ClassNotFoundException {
            StringBuffer stringBuffer = new StringBuffer();
            stringBuffer.append("select");
            //利用注解和反射生成动态的sql语句
            Class<?> forName = Class.forName("com.example.mayi.annotation.User");
            //获取表名
            String tableName = forName.getAnnotation(SetTable.class).value();
            //获取该类下的成员变量的属性值
            Field[] declaredFields = forName.getDeclaredFields();
            for (int i = 0; i < declaredFields.length; i++) {
                Field declaredField = declaredFields[i];
                declaredField.setAccessible(true);
                String value = declaredField.getAnnotation(SetName.class).value();
                //System.out.println(value);
                if(i ==(declaredFields.length-1)){
                    stringBuffer.append(value+ " from  "+tableName+"  ");
                }else {
                    stringBuffer.append("   "+value+"  , ");
                }
            }
            System.out.println(stringBuffer.toString());
        }
    }
    
    @Retention(value = RetentionPolicy.RUNTIME)
    @interface  SetName{
        String value();
    }
    
    
    

    相关文章

      网友评论

          本文标题:Spring之 自定义注解

          本文链接:https://www.haomeiwen.com/subject/qetufhtx.html