Could not autowire. No beans of 'String' type found. с аннотацией @Value в springboot и lombok
Программа падает с ошибкой
Description:
Parameter 0 of constructor in com.dmdev.spring.database.pool.ConnectionPool required a bean of type 'java.lang.String' that could not be found.
Action:
Consider defining a bean of type 'java.lang.String' in your configuration.
Не видит переменные конструктора, при наведении показывает Could not autowire. No beans of 'String' type found.
Сам код класса:
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.sql.Connection;
import java.sql.DriverManager;
@Component("connection")
@RequiredArgsConstructor
public class ConnectionPool {
@Value("${spring.datasource.username}")
private final String username;
@Value("${spring.datasource.password}")
private final String password;
@Value("${spring.datasource.url}")
private final String url;
@Value("${spring.datasource.driver}")
private final String driver;
// public ConnectionPool(@Value("${spring.datasource.username}") String username,
// @Value("${spring.datasource.password}") String password,
// @Value("${spring.datasource.url}") String url,
// @Value("${spring.datasource.driver}") String driver) {
// this.username = username;
// this.password = password;
// this.url = url;
// this.driver = driver;
// }
@PostConstruct
private void init() {
try {
Class.forName(driver);
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println("success!");
} catch (Exception e) {
System.out.println("smth went wrong");
e.printStackTrace();
}
}
@PreDestroy
private void destroy() {
System.out.println("work is over");
}
}
Файл lombok.config:
config.stopbubbling = true
lombok.copyableannotations += org.springframework.beans.factory.annotation.Value
Файл application.properties:
spring.datasource.username=postgres
spring.datasource.password=62276227
spring.datasource.url=jdbc:postgresql://localhost:5432/testdb
spring.datasource.driver=org.postgresql.Driver
файл pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>URALSIB</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.6.0</version>
</dependency>
<dependency>
<groupId>net.datafaker</groupId>
<artifactId>datafaker</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.24</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.24</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>2.6.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.6.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
</dependencies>
</project>
Буду рад помощи!