看网上博客,经常会谈论到Spring的Bean注入,虽然说知道Bena的注入能简化开发降低解耦,那其底层怎么实现呢
spring的set注入配置是这样的
<bean id="book" class="demo.student">
<!--使用property完成属性注入 name:类里面属性名称 value:向属性注入的值 -->
<property name="sName" value="小王"></property>
<property name="sAge" value=1></property>
</bean>
其底层逻辑是通过反射的方式,大致如下代码方式实现
//通过相对路径获取class
Class stu = Class.forName("demo.student");
Object o = stu.newInstance();
Method setAge = stu.getMethod("setsAge",int.class);
setAge.invoke(o,10);
Method setName = stu.getMethod("setsName", String.class);
setName.invoke(o,"小王");
Method information= stu.getMethod("information");
information.invoke(o);