SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)

1.基本三层架构

DAO层

SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第1张图片

service层:

set注入了DAO层的UserDao类,直接调用save方法
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第2张图片
将UserDao和UserService在applicationContext.xml里进行配置,注入到Spring容器中
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第3张图片

web层

web层要使用servlet,首先要在pom.xml里配置上坐标,调用相关的包类
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第4张图片
加载应用上下文对象(applicationContext.xml),创建spring容器,调用service
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第5张图片
servlet还要在web.xml里进行注册,给一个相对路径让用户进行访问servlet
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第6张图片
最后在tomcat里将项目发布,进行热部署,方便开发。
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第7张图片

总结

在这个项目里,web层调用service层,service层调用DAO层,最后DAO层将方法调用输出值。

2.ContextLoaderListener监听器的分析

2.1ApplicationContext应用上下文获取方式

应用上下文对象是通过new ClasspathXmlApplicationContext(Spring配置文件)方式获取的,但是每次从容器中获得Bean时都要编写new ClassPathXmlApplicationContext,这样的弊端是配置文件被加载多次,应用上下文对象被创建多次,浪费资源。

2.2如何使用监视器实现获取应用上下文

在web项目中,可以使用ServletContextListenner监听Web应用的启动,我们可以在Web应用启动时,就加载Spring的配置文件,创建应用上下文对象ApplicationContext,再将其存储到最大的域servletContext域中,这样就可以在任意位置从域中获得应用上下文ApplicationContext对象了。
创建listen包,创建监视器对象,实现ServletContextListener接口
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第8张图片
在web.xml中配置才能使用
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第9张图片
servlet中获取使用监视器获取方法SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第10张图片
运行结果,加载web项目时就创建了应用上下文对象
在这里插入图片描述
网页中访问/servlet结果
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第11张图片

2.3代码优化

在2.2的代码中’applicationContext.xml‘和’app‘都是写死的参数,耦合度较高因此要在配置文件中配置,进行解耦。
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第12张图片
在web.xm中配置全局初始化参数,name为配置名,映射applicationContext.xml
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第13张图片
加载初始化参数并读取,保存app在ServletContext域。
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第14张图片
'app’也是写死创建一个工具类用于返回app,人们不需要知道这个应用上下文对象的名称,直接调用方法传入ServletContext参数。
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第15张图片
SpringMVC预习:Spring集成web环境(初步了解MVC架构的执行流程)_第16张图片

你可能感兴趣的:(mvc,spring,tomcat)