您的位置:首页 > 运维架构 > Apache

Atitit spring原理 反射 ioc 与注解api 目录 1. 反射的使用 1 1.1. 使用jdk原生反射api 1 1.2. 使用apache 工具包 commons-beanutil

2018-11-28 23:07 1101 查看

Atitit spring原理 反射 ioc 与注解api

 

目录

1. 反射的使用 1

1.1. 使用jdk原生反射api 1

1.2. 使用apache 工具包  commons-beanutils-1.7.0.jar 1

2. 注解的使用 2

2.1. 注解定义 2

2.2. 注解设置使用 2

2.3. 注解读取 2

 

 

  1. 反射的使用

 

// 获取通过注解注入容器的UserService

UserService userService = context.getBean(UserService.class);

 

  1. 使用jdk原生反射api

private static UserService getBean(Class<UserService> class1) throws NoSuchMethodExceptionIllegalAccessExceptionInvocationTargetExceptionInstantiationException {

// com.google.common.reflect.Reflection.

 

UserService us= ConstructorUtils.invokeConstructor(class1, null);

return  us;

}

 

  1. 使用apache 工具包  commons-beanutils-1.7.0.jar

目的:提升可读性 容易理解

//使用apache beanutil工具来实现反射

private static Object getBean(Class<?> class1) throws NoSuchMethodExceptionIllegalAccessExceptionInvocationTargetExceptionInstantiationException {

 

   //加载类,并且调用构造函数返回新建对象

return ConstructorUtils.invokeConstructor(class1, null);

 

 

}

  1. 注解的使用 注解定义

 

package ref;

 

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

 

@Retention(RetentionPolicy.RUNTIME)

public @interface 我的注解 {

 

String 属性();

 

String 属性2();

 

}

  1. 注解设置使用

 @我的注解(属性="111",属性2="2222")

public class UserService {

 

 

  1. 注解读取

Class cls= UserService.class;

我的注解   anno1=  (我的注解cls.getAnnotation(我的注解.class);

System.out.println(anno1.属性());

System.out.println(anno1.属性2());

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐