SpringMvc整合Spring
来源:互联网 发布:西门子ug软件侵权 编辑:程序博客网 时间:2024/06/08 01:25
理论上一个SpringMvc的配置文件就可以解决所有的问题,但是通常情况下, 类似于数据源, 事务, 整合其他框架都是放在 Spring 的配置文件中(而不是放在 SpringMVC 的配置文件中). 实际上放入 Spring 配置文件对应的 IOC 容器中的还有 Service 和 Dao.
如果Spring和SpringMvc的配置文件同时存在,那么会存在一些问题:比如
Spring 的 IOC 容器和 SpringMVC 的 IOC 容器扫描的包有重合的部分, 就会导致有的 bean 会被创建 2 次.
为了解决这个问题可以采用如下的方法:
首先需要配置一下扫描的路径:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 配置启动 Spring IOC 容器的 Listener --> <!-- needed for ContextLoaderListener --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <!-- Bootstraps the root web application context before servlet initialization --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener></web-app>
1)规定SpringMvc只扫描一部分的注解
<context:component-scan base-package="com.test" 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>
2)规定Spring扫描跳略某些注释的扫描
<context:component-scan base-package="com.test"> <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>
最后还有一个Bean的优先级加载问题:
Spring MVC WEB 层容器可作为 “业务层” Spring容器的子容器:即 WEB 层容器可以引用业务层容器的 Bean,而业务层容器却访问不到 WEB 层容器的 Bean
也就是说如果你想要在被@Service注解标注的方法中自动装配被@Controller注解标注的方法是无法装配上的。
0 0
- SpringMVC-整合Spring整合
- SpringMVC-15 Spring整合SpringMVC
- SpringMVC+Spring+Ibatis整合
- SpringMVC+Spring+Hibernate整合
- SpringMVC + Spring + SpringJDBC整合
- SpringMVC整合Spring、Hibernate
- SpringMVC + Spring + SpringJDBC整合
- SpringMVC + Spring + SpringJDBC整合
- SpringMVC + Spring + SpringJDBC整合
- Spring-SpringMVC-Hibernate整合
- Spring-SpringMVC-Mybatis整合
- springmvc+spring+mybatis整合
- SpringMVC+spring+maven整合
- springmvc+spring+mybatis整合
- Spring+SpringMVC+Mybatis整合
- springmvc+mybatis+spring整合
- springmvc+spring+mybatis 整合
- mybatis+springmvc+spring 整合
- Fragment
- 日常记录
- org.apache.catalina.core.ContainerBase.startInternal A child container failed during start
- SQL Server 错误日志(ErrorLog)
- 玩转Android之数据库框架greenDAO3.0使用指南
- SpringMvc整合Spring
- Linux音频设备驱动_OSS驱动框架(三)————mixer接口 和 dsp接口
- L1-011. A-B
- Qt QFileDialog实现文件选择对话框
- c/c++ typedef用法功能详解
- 书写一个发送邮件类
- Python转义字符
- 百万级数据查询优化之in
- 杭电2209 翻纸牌游戏 DFS BFS 搜索