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

本文深入探讨了Java中反射与注解的使用方法,包括如何利用JDK原生API和Apache Commons BeanUtils进行反射操作,以及注解的定义、设置与读取过程。通过对UserService类的实例解析,展示了反射和注解在实际开发中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {

// 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 NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {

 

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

return ConstructorUtils.invokeConstructor(class1, null);

 

 

}

  1. 注解的使用
    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());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值