Jakarta ee 使用spring在junit中查找Jndi
如何在junit测试类中查找Jndi名称?我不想为junit使用单独的配置文件,不提供数据源属性?我特别需要在我的测试类中进行jndi查找。如果您使用JBoss,那么应该使用minicontainer。它从main(作为J2SE应用程序)引导stap应用程序服务器。好吧,这个问题没有“标准”解决方案Jakarta ee 使用spring在junit中查找Jndi,jakarta-ee,Jakarta Ee,如何在junit测试类中查找Jndi名称?我不想为junit使用单独的配置文件,不提供数据源属性?我特别需要在我的测试类中进行jndi查找。如果您使用JBoss,那么应该使用minicontainer。它从main(作为J2SE应用程序)引导stap应用程序服务器。好吧,这个问题没有“标准”解决方案 另一种方法可以是仅为JUnit测试建立专用服务器,在J2SE环境中手动配置JNDI环境(希望您能够找到如何使用应用服务器实现这一点),然后连接到远程服务器。这里引用了Spring官方文档: org.
另一种方法可以是仅为JUnit测试建立专用服务器,在J2SE环境中手动配置JNDI环境(希望您能够找到如何使用应用服务器实现这一点),然后连接到远程服务器。这里引用了Spring官方文档: org.springframework.mock.jndi包包含jndi SPI的实现,您可以使用它为测试套件或独立应用程序设置简单的jndi环境 在此文档中,我使用了Spring上下文配置类,该类声明了一个数据源:
@Configuration
public class JndiDataConfig {
@Bean
public DataSource dataSource() throws Exception {
Context ctx = new InitialContext();
return (DataSource) ctx.lookup("java:comp/env/jdbc/datasource");
}
}
如果您喜欢在特殊环境(如应用程序容器)之外测试类,那么可以使用简单的JNDI。它为您创建JNDI环境,并将属性文件中的值绑定到该环境。因此,如果将一些配置参数定义为环境对象,则可以模拟应用程序容器的环境。它还可以为您初始化数据源或连接池,并将其绑定到JNDI上下文,以便您的测试代码可以像往常一样访问它们。有关更多信息,请参阅