一、程序的耦合及解耦
1.概念
耦合:耦合是指程序间的依赖关类,其中包括类之间的依赖和方法之间的依赖。
解耦合: 降低程序间的依赖关系,有些耦合可以避免,有些不可避免。
2.耦合的例子
1)类与类之间的耦合:
实际开发中应该做到,编译期不依赖,运行期才依赖,比如在JDBC编程中,第一步注册驱动环节,采取如下方式。
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
如果没有导入com.mysql.jdbc.Driver包,是无法注册驱动的,在编译期就通过不了,我们认为这样的程序是耦合性比较高的。
如果采取
Class.forName(com.mysql.jdbc.Driver);
是不会在编译器出错的,因为没有包,所以在运行时会抛出异常,这种方式使用了反射的方式解耦。
3.解耦思路
类与类之间的耦合:
第一步:使用反射来创建对象,避免使用new关键字。
第二步:通过读取配置文件来获取要创建的对象全限定类名。
二、IOC
1. IOC的概念
当使用new对象时,是App主动获取资源
当使用SpringIoc容器时,是先配置好,然后由容器统一管理对象的创建与销毁。
App将自己去寻找资源的功能放弃,将权利交给容器,这样的过程就是控制反转。
2. Spring中IOC的配置
1)环境搭建
Step1:新建Maven工程,并导入Spring的依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
</dependencies>
Step2:在resources目录下新建配置文件application.xml
Step3:根据需求在配置文件中注入bean对象
<?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">
<!--把对象的创建交给Spring管理-->
<bean id