1. Spring IOC

Core Container:核心容器(Spring容器,IOC容器)

1.1 IOC容器

IOC容器:控制反转容器,对象的实例化和赋值的控制权,从硬编码转移到了容器中。从思想层面,解释容器的作用。

反转:某些事情,自己不做,交给别人去做,把执行的结果,拿来直接用。

正转:自己的事情,自己做

DI:依赖注入,从功能角度,解释容器的作用,描述容器完成的功能。

依赖:A类使用了B类,称为A类依赖B类。

注入:给属性或参数,赋值(如果是对象类型,会先实例化对象,再赋值)


1.2 使用Spring框架

第一步:导入框架所需的jar包:

Spring IOC介绍及其使用_IOC

第二步:准备Spring框架的配置文件模板:

Spring IOC介绍及其使用_IOC容器_02

第三步:新建一个HelloSpring类:

Spring IOC介绍及其使用_Spring IOC_03

第四步:在Spring的配置文件中,配置HelloSpring类,让Spring框架实例化对象,并赋值:

Spring IOC介绍及其使用_IOC容器_04

第五步:编写测试类,从容器获取对象,看运行效果:

Spring IOC介绍及其使用_IOC_05

1.3 构造注入

构造注入:调用类的带参构造方法,完成属性的赋值

1.3.1 示例代码

第一步:在类中编写带参构造方法,注意要补上无参构造:

Spring IOC介绍及其使用_Spring IOC_06

第二步:在Spring配置文件中,使用constructor-arg标签,对构造方法的参数进行赋值:

Spring IOC介绍及其使用_IOC_07

1.4 p命名空间注入

第一步:在配置文件中,导入p命名空间:

Spring IOC介绍及其使用_Spring IOC_08

第二步:使用p命名空间进行注入:

Spring IOC介绍及其使用_IOC_09


2. 使用注解方式配置Bean

2.1 标注类的注解

Spring IOC介绍及其使用_IOC使用_10

@Component:标注普通的Java类(这个类不属于DAO层、Service层、Controller层)

@Repository:标注持久化层的接口实现类

@Service:标注Service层接口的实现类

@Controller:标注Controller类

2.2 属性赋值的注解

Spring框架提供的属性赋值注解:

Spring IOC介绍及其使用_IOC使用_11

Sun公司提供的属性赋值注解:

Spring IOC介绍及其使用_IOC使用_12

2.3 使用注解开发Java程序

第一步:在Spring配置文件中,配置要扫描注解的包:

Spring IOC介绍及其使用_Spring IOC_13

第二步:在各个类中,根据类所在的位置,添加注解:

普通Java类:

Spring IOC介绍及其使用_IOC_14

DAO层的实现类:

Spring IOC介绍及其使用_IOC使用_15

Service层的实现类:

Spring IOC介绍及其使用_IOC容器_16

如果类中有属性需要赋值,一般可以使用@Autowire或@Resource注解,进行赋值:

Spring IOC介绍及其使用_IOC_17