***以下内容是假设你已经了解了springIOC***
传统的三层模式中,各层间需要互相调用,比如Service层需要调用Dao层的方法
既然需要调用方法,就需要先创建Dao层对应类的实例
单就在Service层创建Dao层类实例这块就产生了程序的耦合.
怎么才能解耦呢?
之前的学习过程中,通过将接口与其对应的实现类配置在了bean.properties中,再通过BeanFactory进行分析再创建实例对象
SpringIOC怎么知道去创建哪些对象到容器内呢?
需要我们人为的去指定要生产的内容,需要通过配置文件来配置.
SpringIOC采用什么配置文件来配置接口及其实现类之间的关系呢?
Answer:采用的文件格式是XML
SpringIOC为什么选择XML呢?
properties:复杂度不够,不支持中文,其主要用途是对数据库的配置
json:结构太轻且不够严谨,没有约束,其主要用于前后端数据的交互(不在乎格式,只在乎内容是什么)
XML:结构严谨,可以被约束(缺点是文件太大)
今天的引导学习会将思想逐渐的向SpringIOC上靠拢!
下面假设不知道SpringIOC技术的基础上,我们通过BeanFactory来实现程序解耦
- 需要创建哪些对象我们也通过文件来配置
- 配置文件的格式也选择XML
- 加载配置文件获取有效信息通过技术:dom4j+xpath
- 在BeanFactory的静态代码块中完成配置的加载
- 配置文件的结构:↓↓↓
- 键:id-->接口类文件名,开头字母小写
- 值:class-->对应的实现类全限定路径
一.案例展示
1.测试准备
项目工程:
2.代码展示
***pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.howie</groupId>
<artifactId>springIOC_lazyload</artifactId>
<version>1.0-SNAPSHOT&