Spring和SpringMVC作为Bean管理容器和MVC层的默认框架,已被众多WEB应用采用,而在实际开发中,由于有了强大的注解功能,很多基于XML的配置方式已经被替代,但在实际项目中,我们经常会同时配置Spring和SpringMVC的配置文件,分层来管理它们,但是有时候就会出现那么一些奇怪的异常,一旦进坑,让你无法自拔,就在昨天给数据组写接口时,我进坑了,就在坑里浑浑噩噩得度分如年,虽然当时很难受很浮躁,但是此刻在总写这篇博文时我心里是很高兴的,真的各位. 首先,我得帮助大家理解一下父子…
1)关系说明 spring 与 springmvc 父子关系:spring (父容器),springmvc (子容器) springmvc(子)--- 可调用 --> spring(父) 中的 bean,属性值等 但 spring(父)-- 不可调用 --> springmvc(子) 中的 bean,属性值等 2)配置原则 spring-context.xml <!-- 启动组件扫描,排除@Controller的组件,因为控制器组件由SpringMVC配置文件扫描 --> <…
spring容器是springmvc的父容器,而父容器是不能访问子容器中的东西,但子容器可以访问父容器的东西…
以下内容为个人理解,如有误还请留言指出,不胜感激! Web容器 web容器(web服务器)主要有:Apache.IIS.Tomcat.Jetty.JBoss.webLogic等,而Tomcat.Jetty.JBoss.webLogic同时也是servlet容器,或者说他们还包含了servlet容器.没有servlet容器,你也可以用web容器直接访问静态页面,比如安装一个apache等,但是如果要显示jsp/servlet,你就要安装一个servlet容器了,但是光有servlet容器是不够的,…
说到spring和springmvc,其实有很多人分不清他们有什么区别,认为它俩是一样的,如果你问他项目里用的什么MVC技术,他会说我们用的spring和mybatis,或者spring和hibernate. 在潜意识里很多人认为springmvc就是spring,之前我也是这么认为的,哈哈. 虽然springMVC和spring有必然的联系,但是他们的区别也是有的.下面我就简单描述下 首先 springmvc和spring它俩都是容器,容易就是管理对象的地方,例如Tomcat,就是管理serv…
原文链接:http://www.cnblogs.com/jieerma666/p/10805966.html https://blog.csdn.net/zhanglf02/article/details/89791797  前人栽树,后人乘凉,谢谢大佬们的整理! Web容器 web容器(web服务器)主要有:Apache.IIS.Tomcat.Jetty.JBoss.webLogic等,而Tomcat.Jetty.JBoss.webLogic同时也是servlet容器,或者说他们还包含了ser…
转载地址:http://www.tianshouzhi.com/api/tutorials/spring 1.spring和springmvc父子容器概念介绍 在spring和springmvc进行整合的时候,一般情况下我们会使用不同的配置文件来配置spring和springmvc,因此我们的应用中会存在至少2个ApplicationContext实例,由于是在web应用中,因此最终实例化的是ApplicationContext的子接口WebApplicationContext.如下图所示: 上…
在spring整体框架的核心概念中,容器的核心思想是管理Bean的整个生命周期.但在一个项目中,Spring容器往往不止一个,最常见的场景就是在一个项目中引入Spring和SpringMVC这两个框架,其本质就是两个容器:Spring是根容器,SpringMVC是其子容器.关于这两个容器的创建.联系及区别也正是本文所关注的问题. 一.引子 Spring和SpringMVC作为Bean管理容器和MVC层的默认框架,已被众多web应用采用.但是在实际应用中,初级开发者常常会因对Spring和Spri…
背景和概述 在spring与springMVC中通过IOC可以管理bean对象,有两个配置文件可以配置ioc spring的配置文件applicationContext.xmlspringMVC的配置文件springMVC.xml工作中我们用spring来管理service层和repertory层的bean对象,而让springMVC去管理controller. 那么很自然有如下的疑问? 1.能不能用springMVC的配置文件springMVC.xml来管理全部的bean对象,包括contro…
转自 https://blog.csdn.net/dhaiuda/article/details/80026354 Spring和SpringMVC的容器具有父子关系,Spring容器为父容器,SpringMVC为子容器,子容器可以引用父容器中的Bean,而父容器不可以引用子容器中的Bean. 了解了Spring与SpringMVC父子容器的关系,接下来让我们看看Spring与SpringMVC容器的初始化过程. 以下讲解使用的web.xml文件如下: <context-param> <…
转载于http://www.tianshouzhi.com/api/tutorials/spring 1.0 spring与springmvc父子容器 1.spring和springmvc父子容器概念介绍 在spring和springmvc进行整合的时候,一般情况下我们会使用不同的配置文件来配置spring和springmvc,因此我们的应用中会存在至少2个ApplicationContext实例,由于是在web应用中,因此最终实例化的是ApplicationContext的子接口WebAppl…
整合Spring时Service层为什么不做全局包扫描详解 一.Spring和SpringMVC的父子容器关系 1.讲问题之前要先明白一个关系 一般来说,我们在整合Spring和SpringMVC这两个框架中,web.xml会这样写到: <!-- 加载spring容器 --> <!-- 初始化加载application.xml的各种配置文件 --> <context-param> <param-name>contextConfigLocation</p…
前段时间有人问我,为什么一定要在web.xml中配置spring的listener呢? <listener> <description>spring监听器</description> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> 本身我们都知道,这个listener是告诉容器,启动的时候…
部分转载自:https://www.cnblogs.com/ljdblog/p/7461854.html springMVC容器和Spring容器 为什么一定要在web.xml中配置spring的listener呢? <listener> <description>spring监听器</description> <listener-class>org.springframework.web.context.ContextLoaderListener</…
在创建ssm项目工程时,经常需要读取properties资源配置文件,传统的方法当然可以. 但是spring提供了更简便的方法,@value注解. 在page.properties文件中,配置分页信息. 这个时候,发现在Service层用@value("${PAGESIZE}")可以取到10. 然而在controller中同样的注解却不起作用了. 原来,这涉及到了spring的父子容器问题. spring和springmvc都是容器.spring是父容器,springmvc是子容器.…
Spring的核心容器 文章目录 Spring的核心容器 BeanFactory ApplicationContext 1.通过ClassPathXmlApplicationContext创建 2.通过FileSystemXmlApplicationContext创建 简单记录 - Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)- Spring的基本应用 Spring是作为一个容器存在的,应用中的所有组件都处于Spring的管理之下,都被Spring以Be…
1,首先,我们在ApplicationContext.xml中会写下下面类的标示: <bean id="helloword" class="com.xt.fristspring.HelloWord"> <property name="name" value="***Helloword类方法进行...."></property> </bean> 2,然后我们会在Main方法中获取s…
概述 大家是否清楚,Tomcat是如何加载Spring和SpringMVC,今天我们就弄清下这个过程(记录最关键的东西) 其中会涉及到大大小小的知识,包括加载时候的设计模式,Servlet知识等,看了你肯定有所收获~ Tomcat tomcat是一种Java写的Web应用服务器,也被称为Web容器,专门运行Web程序 tomcat启动 tomcat启动了之后会在操作系统中生成一个Jvm(Java虚拟机)的进程,从配置监听端口(默认8080)监听发来的HTTP/1.1协议的消息 默认配置文件这样…
1.Spring容器和SpringMVC容器的关系 Spring容器是一个父容器,SpringMVC容器是一个子容器,它继承自Spring容器.因此,在SpringMVC容器中,可以访问到Spring容器中定义的Bean,而在Spring容器中,无法访问SpringMVC容器中定义的Bean.在Web开发中,Controller全部在SpringMVC中扫描,除了Controller之外的Bean,全部在Spring容器中扫描(Service.Dao),按这种方式扫描,扫描完完成后,Contro…
1.Spring和SpringMVC是父子容器关系. 2.Spring整体框架的核心思想是容器,用来管理bean的生命周期,而一个项目中会包含很多容器,并且它们分上下层关系,目前最常用的一个场景是在一个项目中导入Spring和SpringMVC框架,而Spring和SpringMVC其实就是两个容器,Spring是父容器,SpringMVC是子容器,Spring父容器中注册的Bean对SpringMVC子容器是可见的,反之则不行. 3.按照官方文档推荐,根据不同的业务模块来划分不同的容器中注册不…
web容器中有servlet容器,spring项目部署后存在spring容器和springmvc容器.其中spring控制service层和dao层的bean对象.springmvc容器控制controller层bean对象.servlet容器控制servlet对象.项目启动是,首先 servlet初始化,初始化过程中通过web.xml中spring的配置加载spring配置,初始化spring容器和springmvc容器.待容器加载完成.servlet初始化完成,则完成启动.HTTP请求到达w…
一.背景 最近由于项目的包扫描出现了问题,在解决问题的过程中,偶然发现了Spring和SpringMVC是有父子容器关系的,而且正是因为这个才往往会出现包扫描的问题,我们在此来分析和理解Spring和SpringMVC的父子容器关系并且给出Spring和SpringMVC配置文件中包扫描的官方推荐方式. 二.概念理解和知识铺垫 在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命周期的,而在一个项目中,容器不一定只有一个,Spring中可以包括多个容器,而且容器有上…
总结如下: 明确了Servlet规范中ServletContext的作用和意义.此外明确一个Tomcat中多个web应用,每个人web应用有唯一的一个ServletContext(全局上下文).[例子见:同一tomcat多个应用session问题]        这个ServletContext 对应JSP中内置对象javax.servlet.jsp.ServletContext(作用于application全局级) 明确Spring(Spring.context包定义)上下文 Applicat…
  Spring和SpringMVC作为Bean管理容器和MVC层的默认框架,已被众多WEB应用采用,而实际使用时,由于有了强大的注解功能,很多基于XML的配置方式已经被替代,但是在实际项目中,同时配置Spring和SpringMVC时会出现一些奇怪的异常,比如Bean被多次加载,多次实例化,或者依赖注入时,Bean不能被自动注入,但是明明你已经将该Bean注册了的.找原因还是要看问题的根源,我们从容器说起.   在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命…
Spring和SpringMVC作为Bean管理容器和MVC层的默认框架,已被众多WEB应用采用,而实际使用时,由于有了强大的注解功能,很多基于XML的配置方式已经被替代,但是在实际项目中,同时配置Spring和SpringMVC时会出现一些奇怪的异常,比如Bean被多次加载,多次实例化,或者依赖注入时,Bean不能被自动注入,但是明明你已经将该Bean注册了的.找原因还是要看问题的根源,我们从容器说起.   在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命周期…
在上一篇<Spring--Web应用中的IoC容器创建(WebApplicationContext根应用上下文的创建过程)>中说到了Web应用中的IoC容器创建过程.这一篇主要讲SpringMVC的核心DispatcherServlet. 从web.xml中简要回顾一下WebApplicationContext根应用上下文的创建过程.具体过程详见上篇博客. <!--WebApplicationContext配置参数--> <context-param> <para…
1.我们在使用springmvc进行配置的时候一般初始化都是在web.xml里面进行的,但是自己在使用的时候经常会测试一些数据,这样就只有加载spring-mvc.xml的配置文件来实现.为了更方便的使用注解,而不影响具体的实现效果,我今天看到了一个初始化的方式,就是实现ApplicationListener接口 2.spring容器加载bean完成后进行初始化 package com.cy.init; import org.springframework.context.Application…
一般来说,我们在整合spring和SpringMVC这两个框架中,web.xml会这样写到: <!-- 加载spring容器 --> <!-- 初始化加载application.xml的各种配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/applicationContext.xml…
引言 以前写了几篇关于SpringBoot的文章<面试高频题:springBoot自动装配的原理你能说出来吗>.<保姆级教程,手把手教你实现一个SpringBoot的starter>,这几天突然有个读者问:能说一说Spring的父子容器吗?说实话这其实也是Spring八股文里面一个比较常见的问题.在我的印象里面Spring就是父容器,SpringMvc就是子容器,子容器可以访问父容器的内容,父容器不能访问子容器的东西.有点类似java里面的继承的味道,子类可以继承父类共有方法和变量…
web.xml中的加载顺序为:listener > filter > servlet > spring. 其中filter的执行顺序是filter-mapping在web.xml中出现的先后顺序. 加载顺序会影响对Spring bean的调用.比如filter需要用到bean ,但是加载顺序是先加载filter后加载Spring,则filter中初始化操作中的bean为null.所以,如果过滤器中要使用到 bean,可以将spring 的加载改成Listener的方式. <cont…