本节我们讲究如何利用Tomcat的ContextLoaderListener扩展接口来把Spring框架与Tomcat进行连接起来。
问题描述 在使用spring mvc 启动的时候,用到了一个在程序启动时加载的配置方法init-method="initLoad",并启动多线程来做数据同步,但是在程序启动之后发现该方法的任务被执行了
对于熟悉Spring MVC功能,首先应从web.xml 开始,在web.xml 文件中我们需要配置一个监听器 ContextLoaderListener,如下。 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
每一个整合spring框架的项目中,总是不可避免地要在web.xml中加入这样一段配置。
contextConfigLocation 参数指定了spring启动要加载的配置文件,如果不指定,Spring 会加载WEB-INF目录下applicationContext.xml
今天我在配置 Spring Security 的OAuth是遇到了一个错误: java.lang.IllegalStateException: No WebApplicationContext fou
最近都在看小马哥的 Spring 视频教程,通过这个视频去系统梳理一下 Spring 的相关知识点,就在一个晚上,躺床上看着视频快睡着的时候,突然想到当我们在使用 SpringMVC 时,Spring 容器是如何与 Servlet 容器进行交互的?虽然在我的博客上还有几年前写的一些 SpringMVC 相关源码分析,其中关于 Spring 容器如何与 Servlet 容器进行交互并没有交代清楚,于是趁着这个机会,再撸一次 SpringMVC 源码。
在分析SpringMVC框架具体组件之前,我们先了解Spring WebApplicationContext。
SSM开发网上一找一大堆,可是有时候深入使用一下问题还不少,今天就来看看ContextLoaderListener配置带来的问题。
servlet规范当中,使用了Listener监听器机制来进行web容器相关组件的生命周期管理以及Event事件监听器来实现组件之间的交互。
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说ContextLoaderListener和ContextConfigLocation详解「建议收藏」,希望能够帮助大家进步!!!
Spring整合Web 在web工程中添加Spring的jar包。 Spring的核心包 spring-beans-4.0.0.RELEASE.jar spring-context-4.0.0.RELEASE.jar spring-core-4.0.0.RELEASE.jar spring-expression-4.0.0.RELEASE.jar aop包 spring-aop-4.0.0.RELEASE.jar spring-aspects-4.0.0.RELEASE.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar JDBC-ORM包 spring-jdbc-4.0.0.RELEASE.jar spring-orm-4.0.0.RELEASE.jar spring-tx-4.0.0.RELEASE.jar Spring的web整合包 spring-web-4.0.0.RELEASE.jar 测试包 spring-test-4.0.0.RELEASE.jar
前言: 这是关于Spring的第三篇文章, 打算后续还会写入AOP 和Spring 事务管理相关的文章, 这么好的两个周末 都在看code了, 确实是有所收获, 现在就来记录一下. 在上一篇讲解Spring IOC的文章中, 每次产生ApplicationContext工厂的方式是: ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 这样产生appli
网上查了一下,有些人说是没有spring的相关包,但是我检查这个包确实有进行依赖的。双击web.xml的“org.springframework.web.context.ContextLoaderListener”也能跳转到对应class文件里面。显然并不是缺少包的原因。
在前面我们分析了IoC容器的基本实现,下面我们来看看在Web容器中,Spring MVC是建立在IoC容器基础上的.了解Spring MVC,首先要了解Spring IoC容器是如何在Web环境中被载
spring的启动过程是IOC容器的启动过程,本质是创建和初始化bean工厂(BeanFactory)。BeanFactory是Spring IOC的核心,Spring使用beanFactory来实例化,配置和管理bean。
https://www.bilibili.com/video/BV1nz4y1d7uy
基于观察者模式,其设计为开发 Servlet 应用程序提供了一种快捷的手段,能够方便的从另一个纵向维度控制程序和数据. 目前 Servlet 中提供了 6 种两类事件的观察者接口,它们分别是 EventListeners ServletContextAttributeListener ServletRequestAttributeListener ServletRequestListener HttpSessionAttributeListener LifecycleListeners ServletC
<context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/config/application-context.xml /WEB-INF/config/cache-context.xml /WEB-INF/config/captcha-context.xml /WEB-
由于ContextLoderListener实现了ServletContextListener,所以最先执行初始化方法contextInitianized进行初始化
ContextLoaderListener监听器的作用就是启动web容器时,自动装配ApplicationContext的配置信息。它实现了ServletContextListener接口,在web.xml文件中配置这个监听器,Tomcat或Jetty启动容器时,就会默认执行它实现的方法。
Servlet容器在启动时会加载Web应用,并为每个Web应用创建唯一的ServletContext对象。
基于Spring-4.3.7.RELEASE Spring的配置不仅仅局限在XML文件,同样也可以使用Java代码来配置。在这里我使用XML配置文件的方式来粗略地讲讲WebApplicationContext。 一提到Spring,首先就应该能想到的是IoC和AOP,什么是IoC、AOP不在这里做讲解。Spring提供一个最为基础的IoC容器——BeanFactory,但这个IoC容器所能提供给我们的功能比较少,所以我们通常选用另一个——ApplicationContext(应用上下文)来作为我们的IoC容
Java面试系列23-spring(2)-配置数据库驱动、依赖、Mapping等 6.如何在spring的applicationContext.xml使用JNDI而不是DataSource 可以使用”org.springframework.jndi.JndiObjectFactoryBean”来实现。示例如下: <bean id=”dataSource”> <property name=”jndiName”> <value>java:comp/env/jdbc/appfuse</va
1. ApplicationContext应用上下文获取方式 应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,但是每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件) ,这样的弊端是配置文件加载多次,应用上下文对象创建多次。 在Web项目中,可以使用ServletContextListener监听Web应用的启动,我们可以在Web应用启动时,就加载Sprin
多IOC容器整合 SSM整合方式 Spring、SpringMVC、MyBatis
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/150721.html原文链接:https://javaforall.cn
上篇介绍了Spring IOC的核心功能,都在refresh()方法里。那么这个方法是从哪发起调用的呢?
SpringMvc是目前使用最频繁的框架,springmvc里面经常会使用两级级联容器,并且每层容器都各有用途,本文就来探究下这两层级联容器融合创建。
在 WEB 开发中,可能会非常少须要显示的获得 ApplicationContext 来得到由 Spring 进行管理的某些 Bean, 今天我就遇到了,在这里和大家分享一下, WEB 开发中,怎么获取 ApplicationContext
BeanFactory是Spring框架中IoC容器的顶层接⼝,它只是⽤来定义⼀些基础功能,定义⼀些基础规范,⽽ApplicationContext是它的⼀个⼦接⼝,所以ApplicationContext是具备BeanFactory提供的全部功能的。 通常,我们称BeanFactory为SpringIOC的基础容器, ApplicationContext是容器的⾼级接⼝,⽐BeanFactory要拥有更多的功能,⽐如说国际化⽀持和资源访问(xml, java配置类)等等 。
WebApplicationInitializer --> AbstractContextLoaderInitializer --> AbstractDispatcherServletInitializer --> AbstractAnnotationConfigDispatcherServletInitializer
通过new ClassPathXmlApplicationContext(“applicationContext.xml”)来获取应用上下文,不过这种方式获取的弊端就是所有web层的服务使用前都需要利用new ClassPathXmlApplicationContext(“applicationContext.xml”);加载配置文件,导致配置文件需要重复被加载多次,应用上下文的对象也需要创建多次
1、ssm框架,之前运行的好好的,换了一个电脑部署,发现启动报下面这个错误,如下所示:
WebApplicationContext 是MVC Context的父上下文,是否可以互相注入对方的bean? WebApplicationContext中的bean可以注入到MVC Context的bean中,反向不可以(亲测)。参见一下代码:来自AbstractBeanFactory
spring如何使用多个xml配置文件 1, 在web.xml中定义 contextConfigLocation参数.spring会使用这个参数加载.所有逗号分割的xml.如果没有这个参数,spring默认加载web-inf/applicationContext.xml文件. 例如:
spring如何使用多个xml配置文件 1, 在web.xml中定义 contextConfigLocation参数.spring会使用这个参数加载.所有逗号分割的xml.如果没有这个参数,spring默认加载web-inf/applicationContext.xml文件. 例如: <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:conf/spring/applicationContext_core*.xml, classpath*:conf/spring/applicationContext_dict*.xml, classpath*:conf/spring/applicationContext_hibernate.xml, </param-value> </context-param> contextConfigLocation 参数定义了要装入的 Spring 配置文件。 原理:利用ServletContextListener 实现。 Spring 提供ServletContextListener 的一个实现类ContextLoaderListener ,该类可以作为listener 使用,它会在创建时自动查找WEB-INF/ 下的applicationContext.xrnl 文件。因此,如果只有一个配置文件,并且文件名为applicationContext.xml ,则只需在web.xml文件中增加如下代码即可: <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
为什么突然说一下Spring启动原理呢,因为之前面试的时候,回答的那可谓是坑坑洼洼,前前后后,补补贴贴。。。
五月 29, 2019 6:29:39 下午 org.apache.catalina.core.StandardContext listenerStop 严重: Exception sending context destroyed event to listener instance of class [org.springframework.web.context.ContextLoaderListener] java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:170) at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:908) at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:884) at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:836) at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:579) at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:115) at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4817) at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5474) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:226) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:744) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1135) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1869) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExec
如今,开发基于Spring的web应用越来越少使用到web.xml,或者基本上已经看不到web.xml,那这个web.xml到底去哪了呢,接下来我们一起来探索一下。
一个 Tomcat 中有一个 Server,每个 Server 中至少有一个 Service。一个 Service 由至少一个 Connector 与一个 Container 组成。
找到本地maven库,替换E:\.m2\repository\org\springframework下的所有文件 即可。
Spring MVC是美团点评很多团队使用的Web框架。在基于Spring MVC的项目里,注解的使用几乎遍布在项目中的各个模块,有Java提供的注解,如:@Override、@Deprecated等;也有Spring提供的注解,如:@Controller、@Service、@Autowired等;同时还可能有自定义注解等。注解一方面可以作为标记说明使用;另一方面也能帮助我们省去一些配置工作,加快开发速度。注解就像语法糖一样,我有时候会“随心所欲”的把它带入到代码里,一直乐 (hú)此(lǐ)不(hú)疲(
1.简介 在上一篇文章中,我向大家介绍了 Spring MVC 是如何处理 HTTP 请求的。Spring MVC 可对外提供服务时,说明其已经处于了就绪状态。再次之前,Spring MVC 需要进行一系列的初始化操作。正所谓兵马未动,粮草先行。这些操作包括创建容器,加载 DispatcherServlet 中用到的各种组件等。本篇文章就来和大家讨论一下这些初始化操作中的容器创建操作,容器的创建是其他一些初始化过程的基础。那其他的就不多说了,我们直入主题吧。 2.容器的创建过程 一般情况下,我们会在一个 W
在前面 生活就像海洋,只有意志坚强的人才能到达彼岸。已经很久没有发文章了呀,想必大家都挂念我了,哈哈。温故而知新,今天一起来复习一下spring mvc的内容吧。 spring mvc简介与运行原理
WebApplicationContext是专门为web应用准备的,它允许从相对于Web根目录的路径中装载资源配置文件完成初始化工作。
领取专属 10元无门槛券
手把手带您无忧上云