web-dev-qa-db-ja.com

Java 11で@PostConstructおよび@PostDestroyを使用できません。

プロジェクトで@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' 
}
8
user8116296

両方の@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

16
Navid Mitchell

Spring-webmvcしかありません。アノテーションを使用できるようにするには、残りのスプリングが必要です。おそらくスプリングコアとスプリング注釈。

0