【】Spring IoC容器管理对象配置方式
- XML方式,不用扫描句
- Java注解方式,要扫描句(尽可能用注解)
【2.1】XML方式配置Spring IoC容器管理的对象
- 配置管理的对象:
<bean id="employeeDao" class="com.neusoft.oa.hr.dao.impl.EmployeeDaoImpl"/>
【2.2】Java扫描注解方式配置管理的对象(先去掉xml管理的对象)
- 分别在daoimpl, serviceimpl加@XX注解类,
②在toListbyAllController的init加下图,③在Spring配置文件context.xml中加入扫描:
<context:component-scan base-package="com.neusoft.oa"/>
然后运行测试。
)
Spring提供了多个注解类完成创建对象的配置。
@Component:通用的Bean的注解类。
@Repository:用于放置在DAO对象上(daoimpl)。
@Service:用于业务层对象的注册(employeeserviceimpl)。
@Controller:用于控制器类的注册。
将注解类放置在类的定义:
@Service(value="employeeService")
public class EmployeeServiceImpl implements IEmployeeService {
}
@Repository(value="employeeDao")
public class EmployeeDaoImpl implements IEmployeeDao {
}
使用注解方式管理Bean对象,需要配置扫描的起始包。
【】Spring管理依赖注入方式
- 属性set注入。
提供符合JavaBean模式的set方法。
private IEmployeeDao employeeDao=null; //Field
//properties 属性注入模式
@Autowired
public void setEmployeeDao(IEmployeeDao employeeDao) {
this.employeeDao = employeeDao;
}
- 构造方法注入:
提供一个构造方法,将依赖的对象作为参数,注入到类中。
//构造方法注入
public EmployeeServiceImpl(IEmployeeDao employeeDao) {
this.employeeDao = employeeDao;
}
【】Spring管理依赖注入实现的方式
- XML配置方式
- Java注解类方式
【】XML方式实现DI注入
- Set注入:通过<bean>标记的子标记<property>实现。
<bean id="employeeDao" class="com.neusoft.oa.hr.dao.impl.EmployeeDaoImpl"/>
<bean id="employeeService" class="com.neusoft.oa.hr.service.impl.EmployeeServiceImpl" >
<property name="employeeDao" ref="employeeDao"></property>
。。。
</bean>
- 构造方法注入:
通过<bean>标签下的<contructor-arg>(参考spring core的书)
- 默认格式:
<bean id="employeeService01" class="com.neusoft.oa.hr.service.impl.EmployeeServiceImpl" >
<constructor-arg ref="employeeDao"></constructor-arg>
</bean>
- 对参数指定类型:
<bean id="exampleBean" class="examples.ExampleBean">
<constructor-arg type="int" value="7500000"/>
<constructor-arg type="java.lang.String" value="42"/>
</bean>
<bean id="employeeService01" class="com.neusoft.oa.hr.service.impl.EmployeeServiceImpl" >
<constructor-arg ref="employeeDao"></constructor-arg>
<constructor-arg type="int" value="20"></constructor-arg>
<constructor-arg type="java.lang.String" value="20"></constructor-arg>
</bean>
- 指定参数位置:
<bean id="exampleBean" class="examples.ExampleBean">
<constructor-arg index="0" value="7500000"/>
<constructor-arg index="1" value="42"/>
</bean>
【】Java注解方式实现DI注入
- Set注入:Spring通过一个注入的标记: @Autowired
//properties 属性注入模式
@Autowired
public void setEmployeeDao(IEmployeeDao employeeDao) {
this.employeeDao = employeeDao;
}
2.构造方法注入:
在构造方法上面加入注解类@Autowired
@Autowired
public EmployeeServiceImpl(IEmployeeDao employeeDao) {
this.employeeDao = employeeDao;
}
【】