1、简单类型和复合类型的setter注入
DI:Dependency Injection(依赖注入)
从字面上分析:
IoC:指将对象的创建权,反转到Spring容器
DI:指Spring容器创建对象的过程中,将对象依赖属性通过配置进行注入
其实它们是同一个概念的不同角度描述。DI相对IoC而言,明确描述了“被注入对象依赖IoC容器配置依赖对象”。
1)怎么注入值:
方式1:属性注入,通过setter方法;
方式2:构造器注入,通过构造器;
2)注入的方式:
手动装配:
基于XML:
基于注解:
自动装配:不安全,不推荐
3)注入哪些类型的值:
①简单值类型:基本类型+String+URL等
②复合类型(对象类型):
③集合类型(了解,框架内部使用)
public class Employee{ private String name; private Integer age; private Double salary; private URL url; // 省略getter、setter方法 }
<!-- ①简单值类型:基本类型+String+URL等 --><bean id="employee" class="Employee全限定名"> <property name="name" value="John"/> <property name="age" value="20"/> <property name="salary" value="5000"/> <property name="url" value="http://www.baidu.com"/> </bean> <!-- ②复合类型 --><bean id="employeeDao" class="EmployeeDao全限定名"/> <bean id="employeeService" class="EmployeeService全限定名"> <property name="employeeDao" ref="employeeDao"/> </bean>
public class EmployeeService{ private EmployeeDao employeeDao; public void setEmployeeDao(EmployeeDao employeeDao){ employeeDao = employeeDao; } public void save(){ employeeDao.save(); System.out.println("Service.save()") } }
public class EmployeeeDao{ public void save(){ System.out.println("Dao.save()") } }
有的时候,若想只有一个bean引用另一个bean,类似于匿名内部类
<bean id="employeeService" class="EmployeeDao全限定名"> <property name="employeeDao"> <bean class="EmployeeDao全限定名"/> </property> </bean>
时间: 2024-11-06 11:11:03