使用 spring 的 IOC 解决程序耦合
一、准备Spring 的开发包
官网:https://spring.io/ 下载地址:https://repo.spring.io/libs-release-local/org/springframework/spring/
解压(Spring目录结构)这里选用的是 spring-framework-5.0.2.RELEASE 注:spring5 版本是用jdk8编写的,所以要求jdk版本需要是8及以上,同时Tomcat的版本要求也要8.5及以上 Maven中添加的依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
二、基于XML的配置
(1)创建任意名称的 xml 文件到resources下 给配置文件导入约束
bean 标签:用于配置让 spring 创建对象,并且存入 ioc 容器之中 id 属性:对象的唯一标识。 class 属性:指定要创建对象的全限定类名
<?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">
<!--配置service-->
<bean id="accountService" class="mybatis.service.impl.AccountServiceImpl"></bean>
<!--配置dao-->
<bean id="accountDao" class="mybatis.dao.impl.AccountDaoImpl"></bean>
</beans>
使用方式: 或者使用FileSystemXmlApplicationContext
ApplicationContext ac = new FileSystemXmlApplicationContext("D:\Java\IDEA\Mybatis_04\src\main\resources\bean.xml");
三、Spring基于XML的IOC细节
ApplicationContext的三个常用实现类:
*ClassPathXmlApplicationContext:它可以加载类路径下的配置文件,要求配置文件必须在类路径下。不在的话,加载不了。(更常用)
*FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件(必须有访问权限)
*AnnotationConfigApplicationContext:它是用于读取注解创建容器的,是明天的内容。
其中基于xml配置的两个实现类:
ClassPathXmlApplicationContext:同路径下的文件路径 FileSystemXmlApplicationContext:对应硬盘加载路径
四、BeanFactory和ApplicationContext 的区别
BeanFactory 才是 Spring 容器中的顶层接口,ApplicationContext 是它的子接口。 BeanFactory 和 ApplicationContext 的区别: * 创建对象的时间点不一样。 * ApplicationContext 只要一读取配置文件,默认情况下就会创建对象。 * BeanFactory 什么使用什么时候创建对象。
单例对象使用: 多例对象使用:
