当前位置: 首页 > 面试题库 >

弹簧轮廓和测试

商泽宇
2023-03-14
问题内容

我有一个Web应用程序,这里有一个典型的问题,即针对不同环境需要不同的配置文件。某些配置作为JNDI数据源放置在应用程序服务器中,但是某些配置保留在属性文件中。

因此,我想使用Spring配置文件功能。

我的问题是我没有运行测试用例。

context.xml:

<context:property-placeholder 
  location="classpath:META-INF/spring/config_${spring.profiles.active}.properties"/>

测试:

@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({
    TestPreperationExecutionListener.class
    })
@Transactional
@ActiveProfiles(profiles = "localtest")
@ContextConfiguration(locations = {
    "classpath:context.xml" })
public class TestContext {

  @Test
  public void testContext(){

  }
}

问题似乎是无法解析用于加载配置文件的变量:

Caused by: java.io.FileNotFoundException: class path resource [META-INF/spring/config_${spring.profiles.active}.properties] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157)
at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:181)
at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:161)
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.postProcessBeanFactory(PropertySourcesPlaceholderConfigurer.java:138)
... 31 more

当前配置文件应使用@ActiveProfile注释设置。由于这是一个测试用例,因此我将无法使用web.xml。如果可能的话,我也想避免运行时选项。测试应按原样运行(如果可能)。

如何正确激活个人资料?是否可以使用context.xml设置配置文件?我可以在实际调用普通上下文的test-context.xml中声明该变量吗?


问题答案:

我可以建议这样做吗,这样定义测试:

@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({
    TestPreperationExecutionListener.class
    })
@Transactional
@ActiveProfiles(profiles = "localtest")
@ContextConfiguration
public class TestContext {

  @Test
  public void testContext(){

  }

  @Configuration
  @PropertySource("classpath:/myprops.properties")
  @ImportResource({"classpath:context.xml" })
  public static class MyContextConfiguration{

  }
}

在myprops.properties文件中包含以下内容:

spring.profiles.active=localtest

有了这个,您的第二个属性文件应该得到解决:

META-INF/spring/config_${spring.profiles.active}.properties


 类似资料:
  • 问题内容: 如何创建项目架构以支持多个环境。借助于spring的帮助,每个环境都将具有来自不同属性文件(例如,(dev-propertfile,test- propertyFil,Production-propertyfile))的不同数据源。 问题答案: 我将逐步介绍Spring引导应用程序的过程。 在 /src/main/resources/application.properties 内部,

  • 问题内容: 我到处都读到有关Spring如何鼓励您在代码中使用接口的信息。我没看到 您的spring xml配置中没有接口的概念。Spring的哪一部分实际上鼓励您使用接口(而不是文档)? 问题答案: 为类定义接口时,它有助于进行依赖项注入。您的Spring配置文件本身不包含任何有关接口的信息-您只需输入类的名称即可。 但是,如果您要注入另一个提供“等效”功能的类,则使用接口确实会有所帮助。 例如

  • 主要内容:1. outline-style,2. outline-width,3. outline-color,4. outline,5. outline-offset轮廓(outline)是绘制于元素周围的一条线,位于边框的外围(紧贴着边框),主要用来突出显示某个元素,如下图所示: 图:轮廓(outline) 轮廓和边框看起来非常相似,但它们之间也并非没有区别,例如: 元素上下左右四个方向上边框的样式、宽度、颜色可以单独设置,而轮廓在元素四个方向的宽度、样式、颜色都是相同的,不能单独设置; 边

  • 我有2个URL,其中1个特定于Dev,另一个特定于Prod。我也在使用Spring profiling,其中我有一个单独的文件用于Dev和Prod application-Dev。性能和应用-prod。属性和我的应用。对于Dev env,属性文件如下所示 spring.profiles.active=dev 现在在我的java代码中,我想有一个属性,它将根据我使用的Spring配置文件绑定到适当的

  • 问题内容: 如何使用和在一起? personelRepository.java personelService.java personelController.java 当我运行它时,会出现这样的错误。但是,如果我像findAll(Pageable page)和findAll(Specification filter)一样分别调用findAll()函数,它将起作用。但是我不能一起使用。 问题答案:

  • 我正在使用openCV检测图像中的矩形。在许多例子中,我使用阈值findContour约PolyDP。 如下图所示,我的问题是findContours找到的轮廓无法继续,因此在approxPolyDP之后,我无法获得矩形。。。 那么,你知道如何解决这个问题吗?谢谢你。:) 另一个问题:为什么轮廓是灰色的?在阈值之后,应该只有白色和黑色,不是吗? 轮廓 经批准