Spring MVC框架:第十五章:多IOC容器整合,java程序设计案例教程课后答案

<?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”>

springDispatcherServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring-mvc.xml

1

springDispatcherServlet

/

contextConfigLocation

classpath:spring-tx.xml

org.springframework.web.context.ContextLoaderListener

对象重复创建为问题

两个IOC容器分别扫描不同的包时不会有重复创建对象问题[推荐]

SpringMVC扫描:com.ioc.component.handler

Spring扫描:

com.ioc.component.service

com.ioc.component.dao

特定情况下两个IOC容器都扫描同一个包

com.ioc.component

不做特殊处理会存在对象重复创建问题

在这里插入图片描述

在实际开发中我们通常还是需要将二者分开。

1.同时配置两个IOC容器

为了实现更好的解耦,我们在实际开发中往往还是需要将数据源、Service、Dao等组件配置到传统的Spring配置文件中,并通过ContextLoaderListener启动这个IOC容器。 而在表述层负责处理请求的handler组件则使用SpringMVC自己来启动。 这会导致一个问题:同样的组件会被创建两次。

2.两个IOC容器的各自配置

Spring的IOC容器 将标记了@Controller注解的bean排除

Spring配置文件:spring

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

开源完整内容戳这里

-tx.xml

<context:component-scan base-package=“com.ioc.component.*”>

<context:exclude-filter type=“annotation” expression=“org.springframework.stereotype.Controller”/>

</context:component-scan>

仅包含标记了@Controller等注解的bean

SpringMVC配置文件:spring-mvc.xml

<context:component-scan base-package=“com.ioc.component.*” use-default-filters=“false”>

<context:include-filter type=“annotation” expression=“org.springframework.stereotype.Controller”/>

</context:component-scan>

这两个IOC容器中,先启动的那个将成为后启动的IOC容器的父容器。

小结:

DispatcherServlet读取spring-mvc.xml配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值