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.mzph.cn/news/239445.shtml

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

相关文章

freeswitch on debian docker

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 因为centos系统期限的原因&#xff0c;尝试在debian的docker上使用fs。 环境 docker engine&#xff1a;Version 24.0.6 debian docker&#xff1a;bullseye 11.8 freeswitch&#xff1a;v1.10.7 Debian准备 目前…

Pycharm报的一些Python语法错误

Pycharm报的一些Python语法错误 1、PEP8:Expected 2 blank less:found 1 意思是&#xff1a;类和上面的行要间隔两行&#xff0c;现在只有一行 解决办法&#xff1a; 间隔2行 2、Remove redundant parentheses 意思是&#xff1a;删除多余的括号 解决&#xff1a;删掉外面括…

LSTM和GRU vs 普通的循环神经网络RNN

1、考虑下列三种情况下&#xff0c;对比一下普通RNN的表现和LSTM和GRU表现&#xff1a; &#xff08;1&#xff09;早期观测值对预测未来观测者具有非常重要的意义。 考虑一个极端情况&#xff0c;其中第一个观测值包含一个校验和&#xff0c; 目标是在序列的末尾辨别校验和是…

应用案例 | 汽车行业基于3D机器视觉引导机器人上下料解决方案

Part.1 背景 近年来&#xff0c;汽车行业蓬勃发展&#xff0c;一度出现供不应求的现象。在汽车零配件、整车大规模制造的过程中&#xff0c;为了降本增效&#xff0c;提升产品质量&#xff0c;工厂急需完成自动化升级。随着人工智能的发展&#xff0c;越来越多的生产环节引入机…

C++(多态)

目录 前言&#xff1a; 1.多态的概念 2.多态的定义及实现 2.1多态的构成条件 2.2析构函数的重写&#xff08;基类与派生类析构函数名字不同&#xff09; 2.3虚函数重写 2.4C override 和final 2.5 重载、覆盖&#xff08;重写&#xff09;隐藏&#xff08;重定义&#…

css 设备背景图片 宽高总是不能平铺

宽高总是宽大了 高就挤出去了&#xff1b;高设置了 宽度就变小了&#xff1b;疯掉的节奏。。。。。。 .center-bottom{background: url(/img/newpic/leftbg.png);background-repeat: no-repeat;width: 98%;height: 60%;background-position: center center;background-size: 1…

基于YOLOv8深度学习的智能玉米害虫检测识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

自定义Taro上传图片hooks(useUploadImg)

有两个方法需要提前引入 FileUtil(上传文件的方法)、to&#xff08;对请求接口返回做了二次处理&#xff0c;数据和错误提示等&#xff09; //FileUtil export namespace FileUtil {const env {timeout: 10000,uploadImageUrl: "阿里云的地址",};const genPolicy …

微软的word文档中内置背景音乐步骤(打开自动播放)

目录 一、前言 二、操作步骤 一、前言 有时候需要在word文档里面打开的时候就自动播放音乐或者音频&#xff0c;那么可以用微软的word来按照操作步骤去这样完成。 如果没有微软office的&#xff0c;可以下载这个是2021专业版的。因为office只能免费使用一段时间&#xff0c…

融资项目——vue之事件监听

vue通过v-on进行事件监听&#xff0c;在标签中使用v-on:xxx&#xff08;事件名称&#xff09;进行监听&#xff0c;事件触发的相应方法定义在Vue对象中的methods中。如下图所示&#xff1a; 上述代码对按钮进行监听&#xff0c;点击按钮后就会触发solve函数。

如何将图片(matlab、python)无损放入word论文

许多论文对插图有要求&#xff0c;直接插入png、jpg一般是不行的&#xff0c;这是一篇顶刊文章&#xff08;pdf&#xff09;的插图&#xff0c;放大2400%后依旧清晰&#xff0c;搜罗了网上的方法&#xff0c;总结了一下如何将图片无损放入论文中。 这里主要讨论的是数据生成的图…

LTO-3 磁带机种草终于是用上了

跑来跑去&#xff0c;买了不少配件&#xff0c;终于是把这磁带机给用上了&#xff0c;已经备份好了300 多 GB 的数据。 我们用了 NAS 的数据压缩功能&#xff0c;把需要备份的文件用 NAS 压缩成一个 Zip 文件&#xff0c;如果你可以 tar 的话也行。 这样传输速度更快&#xf…

Linux系统中的地址映射

一. 简介 在前面的裸机开发实验 LED灯实验中 &#xff0c;其实就是操作 IMX6ULL芯片的寄存器。 Linux 驱动开发也可以操作寄存器&#xff0c;但是&#xff0c;Linux不能直接对寄存器物理地址进行读写操作&#xff0c;例如&#xff0c;寄存器 A的物理地址为 0X01010101。 裸机…

基于STM32的HC-SR501红外感应模块驱动与应用

一、 简介 HC-SR501红外感应模块是一种常用的人体红外感应模块&#xff0c;常用于安防监控、智能家居等领域。本文将介绍如何在STM32单片机上驱动和应用HC-SR501红外感应模块&#xff0c;实现基本的人体检测功能。 二、 模块原理 HC-SR501红外感应模块基于红外热释电传感器&am…

C++设计模式 #3策略模式(Strategy Method)

动机 在软件构建过程中&#xff0c;某些对象使用的的算法可能多种多样&#xff0c;经常改变。如果将这些算法都写在类中&#xff0c;会使得类变得异常复杂&#xff1b;而且有时候支持不频繁使用的算法也是性能负担。 如何在运行时根据需求透明地更改对象的算法&#xff1f;将…

DRF之引入

目录 一、web应用模式 【1】前后端混合开发 【2】前后端分离 二、API接口 三、接口测试工具&#xff1a;Postman 四、RESTful API规范 【1】什么是RESTful 【2】RESTful API的规范 2.1 数据的安全保障 2.2 接口特征表现 2.3 多数据版本共存 2.4 数据即是资源&#…

Python并行计算和分布式任务全面指南

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是彭涛&#xff0c;今天为大家分享 Python并行计算和分布式任务全面指南。全文2900字&#xff0c;阅读大约8分钟 并发编程是现代软件开发中不可或缺的一部分&#xff0c;它允许程序同时执行多个任务&#xff0…

Win10纯净版edge浏览器改为ie浏览器的方法

在Win10纯净版系统中&#xff0c;用户喜欢使用ie浏览器来浏览页面&#xff0c;但是电脑默认浏览器为edge浏览器&#xff0c;所以想把edge浏览器改成ie浏览器&#xff0c;但不知道更改的操作方法。下面小编给大家详细介绍将Win10电脑默认浏览器edge浏览器改为ie浏览器的方法步骤…

文献速递:生成对抗网络医学影像中的应用——基于CycleGAN的图像到图像转换,用于逼真的外科手术训练模型

文献速递&#xff1a;生成对抗网络医学影像中的应用——基于CycleGAN的图像到图像转换&#xff0c;用于逼真的外科手术训练模型 本周给大家分享文献的主题是生成对抗网络&#xff08;Generative adversarial networks, GANs&#xff09;在医学影像中的应用。文献的研究内容包括…

一文掌握分布式锁:Mysql/Redis/Zookeeper实现

目录 一、项目准备spring项目数据库 二、传统锁演示超卖现象使用JVM锁解决超卖解决方案JVM失效场景 使用一个SQL解决超卖使用mysql悲观锁解决超卖使用mysql乐观锁解决超卖四种锁比较Redis乐观锁集成Redis超卖现象redis乐观锁解决超卖 三、分布式锁概述四、Redis分布式锁实现方案…