在junit中工作的Spring启动监听器

Posted

技术标签:

【中文标题】在junit中工作的Spring启动监听器【英文标题】:Spring startup listener which works in junit 【发布时间】:2012-08-07 07:41:06 【问题描述】:

您好,我有一个不支持 spring 和 hibernate 的 Web 应用程序。 我正在寻找一种可能性来调用一些在运行测试时执行的启动函数。

我使用了 AbstractTransactionalJUnit4SpringContextTests 类并尝试了以下接口

应用监听器 生命周期 ServletContextListener

但是没有一个在junit下被调用。

任何提示(hibernate-database-acces 此时应该可用)?

【问题讨论】:

【参考方案1】:

您可以使用 Annotation ContextConfiguration 为您的测试加载应用程序上下文。

@ContextConfiguration(locations="test/test-context.xml")
public class MyTestsClass 
    // class body...

问候 迈克尔

【讨论】:

我已经有了这个,但是上面的触发器都没有被调用【参考方案2】:

我的解决方案:ApplicationContextAware,只需在你的类路径中添加一个类:

public class SpringApplicationContext implements ApplicationContextAware 

    private static ApplicationContext CONTEXT;

    public void setApplicationContext(ApplicationContext context) throws BeansException 
        CONTEXT = context;
        // DO DB INIT STUFF
    

【讨论】:

以上是关于在junit中工作的Spring启动监听器的主要内容,如果未能解决你的问题,请参考以下文章

使用监听器来启动spring

Spring Boot 启动事件和监听器,太强大了!

spring项目中监听器作用-ContextLoaderListener(转)

spring项目中监听器作用-ContextLoaderListener(项目启动时,加载一些东西到缓存中)

从 Java 启动 OpenOffice 服务 (soffice) 的问题(在命令行中工作的命令,但不是从 Java 中)

深入理解Spring的容器内事件发布监听机制