我正在使用苹果硅(M1处理器)开发的Spring启动应用程序。
我的JVM如下所示。
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (Zulu 8.52.0.23-CA-macos-aarch64) (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (Zulu 8.52.0.23-CA-macos-aarch64) (build 25.282-b08, mixed mode)
我使用的是gradle-6.8.3-all.zip
版本的Gradle。src/test/resources
下有一个名为application-test.properties
的属性文件,其变量如下。
test.environment.variable=${TEST_ENV}
我阅读这个变量的测试代码如下所示。
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestPropertySource(locations = "classpath:application-test.properties")
public class EnvironmentVariableReadTest {
@Autowired
private TestService testService;
@Test
public void environmentVariableReadTest() {
String variable = testService.getEnvironmentVariableFromAutowiredComponent();
assertNotNull(variable);
System.out.println(variable + " is not null");
}
}
- X1 M3 N1 X和X1 M4 N1 X的每一个在下面描述。
// TestService
@Service
@RequiredArgsConstructor
public class TestService {
private final TestComponent testComponent;
public String getEnvironmentVariableFromAutowiredComponent() {
return testComponent.getEnvironmentVariable();
}
}
// TestComponent
@Component
@Getter
public class TestComponent {
@Value("${test.environment.variable}")
private String environmentVariable;
}
我使用下面屏幕截图中的方法设置环境变量。
x1c 0d1x作为测试结果,我得到下面的错误。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testComponent': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'TEST_ENV' in value "${TEST_ENV}"
我要求JetBrains帮助中心解决这个问题,我得到的唯一答案是,这不会发生在他们的计算机上。我已经检查了这个测试代码在Windows和Linux上的作品。此外,我已经尝试清理重新安装IntelliJ几次在这台机器上(苹果硅MacBook Pro)。
示例项目可在--〉Project Link中复制
2条答案
按热度按时间1tu0hz3e1#
我遇到过一个非常类似的问题,不幸的是,在我的情况下,解决方案是通过Rosetta 2使用JDK或将Gradle升级到版本7. x. x。
von4xj4u2#
打开Gradle设置:
将
Build and run using
和Run and test using
更改为Intellij Idea
。