快速了解注解的一些基本知识

编写一个注解的基本原则

1.注解不能直接干扰程序代码的运行,也就是说无论增加或删除注解,程序都能正常的运行。
2.一般情况下是通过java的反射机制读取注解信息,从而通过这些信息更改目标程序的一个逻辑

编写一个简单的注解类并详细解释

package com.lilei.test.annotationtest;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 一个简单的注解类
 * @author lilei
 * Created by Administrator on 2017/10/19.
 */
@Retention(RetentionPolicy.RUNTIME)//a.声明注解的保留期限
@Target(ElementType.METHOD)//b.声明可以使用该注解的目标类型
public @interface NeedTest {//c.定义注解
    /**
     * 1.成员不能有参数,不能抛异常。
     * 如boolean value(String name) 或
     * boolean value() throws Exception 是错误声明方式
     *
     * 2.可以通过default方法来为这个方法指定默认值,也可以不指定默认值
     *
     * 3.成员类型是受限制的,合法的类型除了八种基本类型和它们的包装类以为还包括
     *   String,Class,enmus 的注解类型
     *
     * @return
     */
    boolean value() default true;//d. 声明注解成员
}

注意:
1. a和b处的注解是java预定义的注解,会对注解类的行为产生影响
2. 对@Retention(RetentionPolicy.RUNTIME)详细解释

a.当@Retention的括号中是RUNTIME:运行期间可以通过反射机制来读取类中的注解信息
b.当@Retention的括号中是SOURCE:注解信息仅保留目标类的源代码,不保存对应的字节码文件
c.当@Retention的括号中是CLASS:注解信息将进入目标类的字节码文件中,但类加载器加载字节码文件时不会将注解信息加载到jvm中,也就是说运行期不能获取注解信息

3.Target属性的详细解释:

a.当ElementTypte.TYPE代表类,接口,注解类,Enum声明处,成为类型注解
b.当ElementTypte.FIELD:声明在类的成员变量或者常量上,称为域值注解
c.当ElementTypte.METHOD:方法声明处,称为方法注解
d.当ElementTypte.PARAMTER:参数声明处,称为参数注解
f.当ElementTypte.CONSTRUCTOR:构造函数声明处,相应的注解为构造函数注解
g.当ElementTypte.LOCAL_VARIABLE:局部变量声明
h.当ElementTypte.ANNOTATION_TYPE:注解类声明处

使用注解类

package com.lilei.test.annotationtest;

/**
 * 测试注解类
 *
 * @author lilei
 * Created by Administrator on 2017/10/19.
 */
public class ForumService {
    //注解类中的成员名字叫value所以括号中的值是value,值和注解类中的数据类型要相同,多个的话用,隔开
    //如果是是数组类型的话用{}表示,如:value的类型是一个数组,则@NeedTest(value={...})
    @NeedTest(value=true)
    public void deleteForum(int forumId){
        System.out.println("删除论坛模块:"+forumId);
    }

    @NeedTest(value = false)
    public void deleteTopic(int postId){
        System.out.println("删除论坛主题:"+postId);
    }

}

在一个普通的类中使用注解

package com.lilei.test.annotationtest;

import java.lang.reflect.Method;

/**
 * 注解测试使用类
 * @author lilei
 * Created by Administrator on 2017/10/19.
 */
public class ToolTest {
    public static void main(String[] args) {
        Class clazz = ForumService.class;
        //获取这个类中的所有方法数组;
        Method[] methods = clazz.getDeclaredMethods();
        System.out.println(methods.length);
        for (Method method:methods){
            //获取方法上的注解对象
            NeedTest needTest = method.getAnnotation(NeedTest.class);
            if (needTest != null){
                if (needTest.value()){
                    System.out.println(method.getName()+"()需要测试");
                }else{
                    System.out.println(method.getName()+"()不需要测试");
                }
            }
        }
    }
}

注意:个人觉得其实可以和aop中的切面知识结合起来,比如使用记录日志的时候可以通过aop切面监听类上面使用日志注解的方法,然后只要那个方法被调用了就自动的进入了你自己想要处理的方法。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 学习 Java 中的 SSM 框架需要一些间和耐心。以下是一些建议,帮助您快速学习 SSM 框架: 1. 了解 SSM 框架的组成:SSM 是 Spring、SpringMVC 和 MyBatis 的缩写,因此在学习之前,您需要了解这三个技术的基础知识。 2. 学习官方文档:每个技术都有详细的官方文档,学习这些文档可以帮助您了解每个技术的细节和使用方法。 3. 实践项目:最好的学习方法是实践。通过创建一个小项目,练习使用 SSM 框架,并对遇到的问题进行解决。 4. 加入社区:加入相关技术社区,可以帮助您快速解决问题,并与其他开发人员交流经验。 5. 参加课程:如果您需要一个系统的学习方案,可以参加相关课程,并跟随课程进度学习。 通过以上方法,您可以快速学习 SSM 框架,并将其应用到实际项目中。 ### 回答2: 学习JAVA中基本的SSM框架需要以下的步骤: 1. 学习基础知识:在开始学习SSM框架之前,先要对JAVA编程语言有一定的了解了解JAVA的语法、面向对象编程的概念以及常用的数据结构和算法等基础知识。 2. 学习Spring框架:Spring是SSM框架中最基础的部分,需要学习Spring的核心原理。可以通过阅读相关的书籍或者在线教程来学习Spring的概念、IOC和AOP等核心概念。 3. 学习SpringMVC框架:SpringMVC是基于Spring的MVC框架,学习它可以帮助你理解控制层的工作原理。了解如何处理请求、URL映射以及如何编写控制器等。 4. 学习MyBatis框架:MyBatis是一个轻量级的ORM框架,可以帮助你操作数据库。学习MyBatis可以帮助你了解如何编写SQL映射文件、配置数据源以及如何进行增删改查操作等。 5. 实践项目:通过实际的项目练习来加深对SSM框架的理解。可以选择一个简单的项目,然后搭建好SSM框架,实现基本的增删改查功能。在实践中,你还可以遇到各种问题,学会解决问题也是很重要的。 6. 参考文档和教程:在学习SSM框架的过程中,可以参考一些优秀的文档和教程。例如,Spring官方文档、MyBatis官方文档、SpringMVC的官方文档等等。这样可以更深入地了解SSM框架的使用和细节。 总的来说,快速学习JAVA中基本的SSM框架需要理解框架的核心原理,掌握基本的构造和使用,同需要进行实践项目来加深理解。 ### 回答3: 要快速学习Java中的SSM框架,可以按以下步骤进行: 1. 先理解SSM框架的基本概念和工作原理。SSM框架由Spring、SpringMVC和MyBatis组成,通过整合这三个技术来实现Java Web应用的开发。了解每个组件的功能和相互之间的关系,有助于快速上手。 2. 学习Spring框架。Spring是SSM框架的核心,需要掌握Spring的IoC和AOP的特性,了解如何通过配置文件和注解来配置Spring的Bean和依赖关系。还要学习Spring的事务管理和SpringMVC的配置。 3. 学习SpringMVC框架。掌握SpringMVC框架的请求处理流程和配置方法,了解如何定义控制器、处理请求和返回视图。还要学习如何处理请求参数、表单验证和异常处理等。 4. 学习MyBatis框架。MyBatis是一种持久层框架,通过配置XML文件或注解来实现数据库操作。要学会如何定义数据映射关系、执行CRUD操作和处理动态SQL。 5. 练习实战项目。通过参与实际的SSM框架项目开发,加深对框架的理解和应用能力。可以自己动手写一些简单的项目或参加开源项目,积累经验和技巧。 6. 查阅相关文档和资料。在学习过程中,要善于查阅官方文档、书籍和在线教程等相关资料,及解决遇到的问题和困惑。 7. 及复习和巩固。不断回顾前面学习的知识点,加深印象和理解。可以通过写博客、做笔记等方式对所学内容进行总结和复习。 总之,要快速学习SSM框架,除了理解框架的基本概念和原理外,还需要通过实战项目来熟悉和掌握具体的应用技巧,同加强不断学习和巩固复习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值