注解

/ Spring / 没有评论 / 330浏览

在前几篇中,我们基本都是通过xml的方式来为对象织入增强的,但在实际的开发中,我们基本不会采用这种方式,因为spring为我们提供了更方便的注解的方式来实现和xml织入增强一样的功能,也就是可以通过注解来创建切面。在学习这方面的知识之前,我们先看一下在Java中怎么实现一个简单的注解功能。

@Retention(RetentionPolicy.RUNTIME) // 生命注解的保留期限
@Target(ElementType.METHOD) // 生命注解可以使用的类型
public @interface Login {
boolean role() default false; // 生命注解成员
}
public class UserService{

@Login(role = true)
public void login(String username, String password) {
System.out.println(String.format("用户登陆: username: %s password: %s", username, password));
}

@Login
public void register(String username, String nickName, String password) {
System.out.println(String.format("用户注册: username: %s nickName: %s password: %s", username, nickName, password));
}

}
@Test
public void test() {
Class clazz = UserService.class;
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
Login login = method.getAnnotation(Login.class);
if (login != null) {
if (login.role()) {
System.out.println(String.format("%s 需要登陆", method.getName()));
} else {
System.out.println(String.format("%s 不需要登陆", method.getName()));
}
}
}
}
register 不需要登陆
login 需要登陆