springMVC-与spring整合

一、基本介绍        

        在项目开发中,spring管理的 Service和 Respository,SrpingMVC管理 Controller和ControllerAdvice,分工明确

当我们同时配置application.xml,    springDispatcherServlet-servlet.xml , 那么注解的对象会被创建两次, 故一定要区别开

二、具体做法

1、写好注解, @Repository @Service @ Controller ,看图

2、在web.xml中配置spring(包括spring的加载监听器), springMVC各自的配置文件

<web-app>
<!--  配置spring--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param>
<!--  配置spring的加载监听器-->
<!--  在启动Web容器时,自动装配applicationContext.xml的配置信息--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--    假如不在默认位置(WEB-INF下,默认名称必须是 springDispatcherServlet-servlet.xml),
可以使用以下代码自定义--><!--    <init-param>--><!--      <param-name>contextConfigLocation</param-name>--><!--      <param-value>classpath:WEB-INF/springDispatcherServlet-servlet.xml</param-value>--><!--    </init-param>--><!--    表示tomcat加载servlet的顺序,数字越小越先加载--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><!--    这里注意这种url请求形式配置成/这样支持restfulT--><url-pattern>/</url-pattern></servlet-mapping></web-app>

3、在applicationContext.xml, 配置如下

<context:component-scan base-package="com.bin.springMVC.*"><context:exclude-filter type="annotation"expression="org.springframework.stereotype.Controller"/><context:exclude-filter type="annotation"expression="org.springframework.web.bind.annotation.ControllerAdvice"/></context:component-scan>

4、在 springDispatcherServlet-servlet.xml (注意必须是这个名字,第一段可改,如果不指定位置,那么spirngMVC的配置文件的位置必须在WEB-INF下), 配置如下

<!--配置自动扫描包--><context:component-scan base-package="com.bin.springMVC.*" use-default-filters="false"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/><context:include-filter type="annotation"expression="org.springframework.web.bind.annotation.ControllerAdvice"/></context:component-scan>
<!--配置用 InternalResourceViewResolve如果我们在目标方法返回一个"loginoK”则真实的资源就是prefix/名字/suffixloginOK => /WEB-INF/pages/loginOk.jsp-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/></bean>
<!--    加入两个常规配置,才会加载.js .css文件--><mvc:annotation-driven></mvc:annotation-driven><mvc:default-servlet-handler/>

5、效果,启动项目后,各个注解的对象只被创建一次

三、bean的引用

注意bean的相互引用关系, 即controller会引用  service , 但service不会去引用controller

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/296395.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop入门学习笔记——三、使用HDFS文件系统

视频课程地址&#xff1a;https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接&#xff1a;https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记&#xff08;汇总&#xff09; 目录 三、使用HDFS文件系统3.1. 使用命令操作HDFS文件系统3.1.…

Linux系统安装及管理

目录 一、Linux应用程序基础 1.1应用程序与系统命令的关系 1.2典型应用程序的目录结构 1.3常见的软件包装类型 二、RPM软件包管理 1.RPM是什么&#xff1f; 2.RPM命令的格式 2,1查看已安装的软件包格式 2.2查看未安装的软件包 3.RPM安装包从哪里来&#xff1f; 4.挂…

VS(Visual Studio)更改文件编码

vs默认编码是GB2312,更改为UTF-8 工具->自定义

ansible的控制语句

本章内容主要介绍 playbook 中的控制语句 使用when判断语句block-rescue判断循环语句 一个play中可以包含多个task&#xff0c;如果不想所有的task全部执行&#xff0c;可以设置只有满足某个条件才执行这个task&#xff0c;不满足条件则不执行此task。本章主要讲解when 和 blo…

初识QT(上篇):What Qt

初识QT&#xff08;上篇&#xff09;&#xff1a;What Qt 前言 & 说明前言说明 初识QT1.1 QT的what1. 介绍2. 发展历程3. QT架构的主要内容4.QT的常用模块 1.2 QT的 why1. QT的核心机制 下篇笔记链接 前言 & 说明 前言 前言&#xff1a; 之前说要share的qt相关知识&am…

无线路由器DHCP导致网络故障一例

多个DHCP故障 这几天公司网络很难用&#xff0c;也不知道原因。通过路由器的检测功能&#xff0c;领导截图如下&#xff1a; 故障解决 其实解决办法也很简单&#xff0c;就是关闭设备排查。结果发现是一个无线路由器导致的。进入路由器管理界面&#xff0c;关闭DHCP即可。 反思…

Jenkins自动化部署之后端

准备工作参考本人另外几篇Jenkins相关的文章 新建任务 添加参数配置 字符串参数&#xff1a;分支名称 多选框&#xff1a;项目名称&#xff08;Extended Choice Parameter插件必备&#xff0c;插件安装参考我另外的文章&#xff09; 这个分割规则自定义。只要根据Jenkins…

第 120 场双周赛 解题报告 | 珂学家 | 前后缀拆解 启发式合并

前言 忘名可以再记&#xff0c;回忆永不再来 整体评价 好像有一段时间没写周赛题解了&#xff0c;_. 感觉今天手感特别好&#xff0c;下午的几场比赛&#xff0c;包括传智杯都能打出超神战绩。 T3这题属于前后缀拆解&#xff0c;然后单调栈上二分(可以引入哨兵机制)&#xf…

SpringSecurity深度解析与实践(3)

这里写自定义目录标题 引言SpringSecurity之授权授权介绍java权限集成 登录失败三次用户上锁 引言 SpringSecurity深度解析与实践&#xff08;2&#xff09;的网址 SpringSecurity之授权 授权介绍 Spring Security 中的授权分为两种类型&#xff1a; 基于角色的授权&#…

5. 结构型模式 - 外观模式

亦称&#xff1a; Facade 意图 外观模式是一种结构型设计模式&#xff0c; 能为程序库、 框架或其他复杂类提供一个简单的接口 问题 假设你必须在代码中使用某个复杂的库或框架中的众多对象。 正常情况下&#xff0c; 你需要负责所有对象的初始化工作、 管理其依赖关系并按正确…

HackTheBox - Medium - Linux - Format

Format Format 是一种中等难度的 Linux 机器&#xff0c;它突出显示了由解决方案的结构方式引起的安全问题。立足点涉及PHP源代码审查&#xff0c;发现和利用本地文件读/写漏洞&#xff0c;并利用Nginx中的错误配置在Redis Unix套接字上执行命令。横向移动包括浏览 Redis 数据…

饥荒Mod 开发(二一):超大便携背包,超大物品栏,永久保鲜

饥荒Mod 开发(二十)&#xff1a;显示打怪伤害值 源码 游戏中的物品栏容量实在太小了&#xff0c;虽然可以放在箱子里面但是真的很不方便&#xff0c;外出一趟不容易看到东西都不能捡。实在是虐心。 游戏中的食物还有变质机制&#xff0c;时间长了就不能吃了&#xff0c;玩这个游…