我在项目中使用@PostConstruct
和@PostDestroy
批注时遇到了问题。我不能使用这些注释,尽管我导入了Java的注释,但这些注释似乎并不存在。我正在使用Java 11,这就是我的build.gradle
文件的内容:
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
testCompile group: 'junit', name: 'junit', version: '4.12'
compile group: 'org.springframework', name: 'spring-webmvc', version: '5.1.0.RELEASE'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.7'
compile group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
provided group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1'
}
答案 0 :(得分:1)
您只有spring-webmvc,需要其余的Spring才能使用它们的注释。可能是spring-core和spring注释。
答案 1 :(得分:1)
请注意,@PostConstruct
和@PreDestroy
注释都是Java EE的一部分。而且由于Java EE在Java 9中已被弃用,而在Java 11中已被删除,因此我们必须添加其他依赖项才能使用这些注释:
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
在这里找到:https://www.baeldung.com/spring-postconstruct-predestroy
答案 2 :(得分:0)
另一个对我有用的解决方案是这个。 转到https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api/1.2 并下载jar文件。 然后将 jar 文件复制到您的项目 lib 目录中。 最后将项目构建路径指向您粘贴到本地 lib 文件夹中的文件的类路径下。