user8116296
user8116296

Reputation:

I can't use @PostConstruct and @PostDestroy with Java 11

I've got problem with using @PostConstruct and@PostDestroy annotations in my project. I can't use these annotations and it looks like these doesn't exist despite the fact that I imported Java's annotations. I am using Java 11 and that is content of my build.gradle file:

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' 
}

Upvotes: 53

Views: 57657

Answers (3)

Med Sep
Med Sep

Reputation: 344

Another solution which worked for me is this. Go to https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api/1.2 and download the jar file. Then copy the the jar file to your project lib directory. Finally point the project build path, under class path to the file you pasted into your local lib folder.

Upvotes: 1

Navid Mitchell
Navid Mitchell

Reputation: 1445

Note that both @PostConstruct and @PreDestroy annotations are part of Java EE. And since Java EE has been deprecated in Java 9 and removed in Java 11 we have to add an additional dependency to use these annotations:

For Maven

<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.2</version>
</dependency>

If using Gradle

implementation "javax.annotation:javax.annotation-api:1.3.2"

Found here: https://www.baeldung.com/spring-postconstruct-predestroy

Upvotes: 109

Krzysztof Cichocki
Krzysztof Cichocki

Reputation: 6414

You have only spring-webmvc, you need the rest of the spring to be able to use their annotations. Probably spring-core and spring-annotations.

Upvotes: 2

Related Questions