• Spring注入的反射解释


    对于如下配置片段: 

    1.  <bean id="id" class="lee.Aclass">
    2.  <!--property配置需要依赖注入的属性-->
    3.  <property name="aaa" value="aVal"/>
    4.  <property name="bbb" value="bVal"/>
    5.  ...
    6.  </bean>

    Spring将会为每个bean元素创建一个Java对象(即bean实例)。而Spring将采用类似于如下的代码创建Java实例。

    1.  //获取lee.AClass类的Class对象
    2.  Class targetClass = Class.forName("lee.AClass");
    3.  //创建Lee.AClass类的默认实例
    4.  Object bean = targetClass.newInstance();

    创建实例后,Spring接着遍历bean元素中所有的property子元素,bean元素没包含一个property子元素,spring将为该bean实例调用一次setter方法。

    类似如下代码:

    1.  //获取aaa的属性对应的setter方法名
    2.  String _setName1 = "set" +"Aaa";
    3.  /获取lee.Class类中的setAaa()方法
    4.  Method setMethod1 = targetClass.getMethod(setName1,aVal.getClass());
    5.  //调用bean实例的setAaa()方法
    6.  setMethod1.invoke(bean,aVal);

    通过上述代码,Spring就可以根据配置文件的信息来创建Java实例。并将为该Java实例注入合理的属性值。

  • 相关阅读:
    04.DRF-开发REST 接口
    03.DRF-设计方法
    02.DRF-认识RESTful
    01.DRF-Web应用模式
    14.Django-xadmin和富文本编辑器
    13.Django-分页
    12.Django-admin
    11.Django-form表单上传文件
    android 基于wifi模块通信开发
    android蓝牙通讯开发(详细)
  • 原文地址:https://www.cnblogs.com/moxiaotao/p/9432697.html
Copyright © 2020-2023  润新知