案例1:基本属性依赖注入
- 创建一个Person类,给他两个私有属性,如下:
- 再创建一个类,对比程序给对象的成员变量赋值(注释掉的部分)和Spring给对象的成员变量赋值
- 在applicationContext.xml文件中添加如图所示代码,进行赋值
运行结果:
案例2:集合或数组依赖注入
- 创建一个Students类,如下:
和上一个案例一样
运行结果:
案例3:Map依赖注入(选)
package com.hnucm.spring;
import java.util.Map;
public class Student {
Map<Integer, String> stuMap;
public Map<Integer, String> getStuMap() {
return stuMap;
}
public void setStuMap(Map<Integer, String> stuMap) {
this.stuMap = stuMap;
}
@Override
public String toString() {
return "Student{" + "stuMap=" + stuMap + '}';
}
}
xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="student" class="com.hnucm.spring.Student">
<property name="stuMap">
<map>
<entry>
<key>
<value>001</value>
</key>
<value>student1</value>
</entry>
<entry>
<key>
<value>002</value>
</key>
<value>student2</value>
</entry>
</map>
</property>
</bean>
</beans>
案例4:Spring自动装配
自动依赖注入 autowire=“byName” 可以帮我们实现依赖注入,找到成员变量名字赋值成功,找不到匹配的成员变量名称报错,空指针异常,修改id后运行成功
修改后:
结果:
autowire=“byType” 找成员变量的类型进行自动匹配,匹配到了多个就会抛出异常,如下:
出现多个可匹配的类型
结果:
案例5:Spring注解创建对象
在xml文件中开启注解:
Bean注解:
相对于xml方式而言,通过注解的方式配置bean更加简洁和优雅,而且和MVC组件开发的理念十分契合,是开发中常用的使用方式。
-
普通组件:@Component
标识一个受Spring IOC容器管理的组件 -
持久化层组件:@Repository
标识一个受Spring IOC容器管理的持久化层组件 -
业务逻辑层组件:@Service
标识一个受Spring IOC容器管理的业务逻辑层组件 -
表述层控制器组件:@Controller
标识一个受Spring IOC容器管理的表述层控制器组件
案例6:Spring 自动注入注解
- Autowired 注解可以进行 自动依赖注入
- Autowired 根据类型, 也可以根据名字 自动切换
- Autowired优先匹配类型,再切换到名字
- Resource优先匹配名字,再切换到匹配类型
- Autowired 自动帮我们生成成员变量的set和get方法
- 大大的简化了代码
xml文件中开启注解:
运行结果:
下一节课:用Spring来实现单表增删改查
(小白告退)