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>

Буду рад помощи!


Ответы (0 шт):