模仿Spring创建自定义注解

136 阅读1分钟

@[toc] 模仿Spring起一个类似的包 org.simpleframework.core.annotation 下面模仿Spring创建如下的注解.
创建不同的注解的作用是根据不同的注解, 去做不同的处理. 例如Controller 注解可能要解析映射. Service 注解要 去开启事务. Repository 要去执行sql等

Controller

package org.simpleframework.core.annotation;

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

/**
 * 用于Controller的注解
 * @author
 */
// 该注解用于类上
@Target(ElementType.TYPE)
// 用于反射解析
@Retention(RetentionPolicy.RUNTIME)
public @interface Controller {

}

Service

package org.simpleframework.core.annotation;

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

/**
 * 用于Service的注解
 * @author
 */
// 该注解用于类上
@Target(ElementType.TYPE)
// 用于反射解析
@Retention(RetentionPolicy.RUNTIME)
public @interface Service {

}

Repository

package org.simpleframework.core.annotation;

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

/**
 * 用于Repository dao的注解
 * @author
 */
// 该注解用于类上
@Target(ElementType.TYPE)
// 用于反射解析
@Retention(RetentionPolicy.RUNTIME)
public @interface Repository {

}

Component

    package org.simpleframework.core.annotation;

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

@Target(ElementType.TYPE)
// 用于反射解析
@Retention(RetentionPolicy.RUNTIME)
public @interface Component {

}