点一下关注吧!!!非常感谢!!持续更新!!!
大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html
目前已经更新到了:
MyBatis(已更完)Spring(正在更新…)IoC 基础
BeanFactory 和 ApplicationContext 区别
BeanFactory 是 Spring 框架中 IoC 容器的顶层接口,它只是用来定义一些基础功能,定义一些基础规范,而 ApplicationContext 是它的一个子接口,所以 ApplicationContext 是具备 BeanFactory 提供的全部功能。
通常,我们称 BeanFactory 为 SpringIoC 容器,ApplicationContext 是容器的高级接口,比 BeanFactory 要拥有更多的功能,比如说国际化支持和资源访(XML、Java 配置类)等等。
BeanFactory
是 Spring 框架的核心接口,提供了最基本的 IoC 容器 功能。主要用于延迟初始化(懒加载)bean。适合用于资源受限的环境(例如:移动设备、嵌入式系统)。实现类:DefaultListableBeanFactory。ApplicationContext
是 BeanFactory 的子接口,提供了更多的功能。适合大型企业级应用,提供事件发布、国际化支持等高级功能。实现类:ClassPathXmlApplicationContext、FileSystemXmlApplicationContext 等。BeanFactory 场景
用于资源受限的环境或测试场景。如果应用程序不需要 ApplicationContext 的高级功能,BeanFactory 是一个更轻量级的选择。ApplicationContext 场景
用于企业级应用,支持国际化、事件监听、AOP 等高级功能。推荐在大部分 Spring 应用中使用。项目准备
拷贝项目
我们把上一节的项目拷贝一份,后续将在上节的基础上进行调整。
添加依赖
需要在上节的依赖的基础上,加入下面的新的依赖:
<!-- Spring --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.12.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.1.12.RELEASE</version></dependency><dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>5.1.12.RELEASE</version></dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.13</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.1.12.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.1.12.RELEASE</version></dependency>
对应截图如下所示:
启动 IoC 容器
Java 环境
ClassPathXmlApplicationContext:从类的根路径下加载配置文件(推荐使用)FileSystemXmlApplicationContext:从磁盘路径上加载配置文件AnnotationConfigApplicationContext:纯注解模式下启动 Spring 容器Web 环境
XML 方式
从 XML 启动容器,修改 webapp 下的 WEB-INF 下的 web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener></web-app>
对应的截图如下所示:
配置类 方式
从配置类启动容器
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <context-param> <param-name>contextClass</param-name> <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value> </context-param> <context-param> <param-name>contextConfigLocation</param-name> <param-value>wzk.SpringConfig</param-value> </context-param> <!--使⽤监听器启动Spring的IOC容器--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener></web-app>
对应的截图如下所示: