spring di 依赖注入,怎么理解?比如,在我们service需要用到dao层的方法,那通常我们会怎么做,大家可能第一时间想到的就是new 一个dao层对象出来,而这种new出来的对象是我们自己管理的,是我们根据业务需求,在需要的时候new出来的,也就是我们的bean并没有交给spring管理,在引入spring 后,在我们的代码环境中,几乎不需要通过new,spring会把依赖的对象注入进来,下面简单的梳理一下,spring的注入。
- 基于构造函数的注入,在我们的pojo定义好bean,提供了构造函数,spring 会根据我们的配置调用构造函数
<bean id="exampleBean" class="examples.ExampleBean"> <constructor-arg index="0" value="7500000"/> <constructor-arg index="1" value="42"/> </bean>
- 基于setter 的注入,在我们的pojo里,生成getter和setter方法,采用如下的配置,spring就会将该对象注入
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <!-- results in a setDriverClassName(String) call --> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydb"/> <property name="username" value="root"/> <property name="password" value="masterkaoli"/> </bean>
这个环节涉及到配置基本类型的,复杂类型的,大家如有疑问,可参照spring 官方文档