我们有一个标准的Spring测试类,它加载一个应用程序上下文:
@ContextConfiguration(locations = {"classpath:app-context.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
public class AppTest {
...
}
XML上下文使用标准占位符,例如:${key}
当完整的应用程序正常运行时(不是作为测试),main类将加载应用程序上下文,如下所示,以便Spring可以看到命令行参数:
PropertySource ps = new SimpleCommandLinePropertySource(args);
context.getEnvironment().getPropertySources().addLast(ps);
context.load("classpath:META-INF/app-context.xml");
context.refresh();
context.start();
运行Spring测试时,需要添加哪些代码来确保程序参数(例如--key=value
):是从IDE(在我们的例子中是Eclipse)传递到应用程序上下文中的吗?
谢谢
1条答案
按热度按时间64jmpszr1#
我不认为这是可能的,不是因为Spring,请参阅SO上的另一个问题并给出解释:
如果你决定在Eclipse中使用JVM参数(
-Dkey=value
),在Spring中使用这些值很容易:或者,不使用
@Value
,只使用属性占位符:其中
test-app-context.xml
是并且
ExampleService
是:传递给测试的参数是
VM argument
(像-Darg1=value1
一样指定),不是Program argument
。在Eclipse中,都可以通过 * 右键单击 * 测试类-〉
Run As
-〉Run Configurations
-〉JUnit
-〉Arguments
选项卡-〉VM Arguments
来访问。