Spring.Day03.web集成
01. 新建一个web工程,完成Dao,DaoImpl,Service,ServiceImpl, applicationContext.xml 的配置,完成依赖包的配置;并构建一个servlet
>> 问题
> 在应用上下文中加载配置,会多次加载,对象也会被多次创建;
> 解决方法:
* 使用 ServletContextListener 监听 web 应用的启动;
* 在启动的时候,加载配置文件,创建应用上下文 ApplicationContext;
* 将应用上下文存储到最大的域 servletContext 域中,这样就可以在任意位置从域中获取应用上下文 ApplicationContext 对象了;
> 处理步骤
* 创建 Listener 并重写 contextInitialized事件, 在初始化事件中,加载配置文件,并创建ApplicationContext, 并将其放到servletContext域中
** 上述方法中,对于配置文件,固定了文件名称,有点不方便,优化升级处理如下
* 在配置文件中配置初始化全局参数
* 在初始化时,依据全局配置参数,取Spring配置文件名称,再依据获取的名称加载参数;
* 配置监听器
* 在创建ApplicationContext时,将其存储到了servletContext域中,但是存储的名字是固定的,为了避免每次取的时候都要记住这个名称,可以再建一个类,直接返回应用上下文对象;
* 在获取 的时候,直接通过函数获取
>> Spring 本身提供了上述逻辑的封装,只需要按如下步骤,即可实现上述相应的功能;
1. 在web.xml 中配置 ContextLoadListener 监听器 (需要导和 spring-web 坐标);
2. 使用 WebApplicationContextUtils 获取上下文对象 ApplicationContext
02.SpringMVC
A. 开发步骤
>> 导入 SpringMVC相关坐标;
>> 配置 SpringMVC核心控制器 DispathcerServlet;
>> 创建 Controller类和视图页面
>> 使用注解配置 Controller类中业务方法的映射地址;
>> 配置 SpringMVC核心文件 spring-mvc.xml (主要是配置组件扫描)
将配置文件加载
>> 客户端发起请求测试;
http://localhost:8080/xxx/quick
B. Spring MVC 流程
03. SpringMVC组件解析
SpringMVC执行流程
04 SpringMVC注解解析
>>关于 @RequestMapping 注解的说明
作用:用于建立请求URL和处理请求方法之间的对应关系;
位置:类上,请求URL的第一级访问目录,此处不写就相当于应用的根目录;
方法上,请求URL的第二级访问目录,与类上的使用@RequestMapping标的一级目录一起组成访问虚拟路径
属性: value: 用于指定请求的URL,它和path属性的作用是一样的;
method: 用于指定请求方式
params: 用于指定限制请求参数的条件,它支持简单的表达式,要求请求参数的key和value必须和配置的一模一样;
如: params = {"accountName"} :表示请求参数必须有 accountName
params = {"money!100"} :表示请求参数中money不能是100
>> 组件扫描
a. mvc命名空间的引入
b. 配置组件扫描
05. SpringMVC的xml 配置文件