当前位置: 首页 > news >正文

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.lryc.cn/news/266573.html

相关文章:

  • 【二叉树】【单调双向队列】LeetCode239:滑动窗口最大值
  • 如何使用树莓派Bookworm系统中配置网络的新方法NetworkManager
  • 恶意软件分析沙箱在网络安全策略中处于什么位置?
  • ARM学习(24)Can的高阶认识和错误处理
  • 网络通信--深入理解网络和TCP / IP协议
  • IPC之九:使用UNIX Domain Socket进行进程间通信的实例
  • 学习在UE中通过Omniverse实现对USD文件的Live-Sync(实时同步编辑)
  • 实现打印一个数字金字塔。例如:输入5,图形如下图所示
  • hive sql常用函数
  • Spark系列之:使用spark合并hive数据库多个分区的数据到一个分区中
  • 《重构-改善既有代
  • vue3(七)-基础入门之事件总线与动态组件
  • 【计算机网络】网络层——IP协议
  • 《钢结构设计标准》中抗震性能化设计的概念
  • 【算法】【动规】回文串系列问题
  • 4-Docker命令之docker logs
  • svelte基础语法学习
  • Node.js教程-mysql模块
  • 网络通信协议
  • Spark集群部署与架构
  • DshanMCU-R128s2 SDK 架构与目录结构
  • 【5G PHY】NR参考信号功率和小区总传输功率的计算
  • k8s学习 — 各知识点快捷入口
  • 【Python】Python 批量转换PDF到Excel
  • Python并行计算和分布式任务全面指南
  • 微信小程序promise封装
  • hash长度扩展攻击
  • 设计模式--命令模式
  • 单例模式的七种写法
  • ElasticSearch入门介绍和实战