вот структура проекта
вот класс Main
@ConfigurationPropertiesScan
@SpringBootApplication
public class Main {
public static void main(String[] args) {
ApplicationContext applicationContext = SpringApplication.run(ApplicationRunner.class, args);
System.out.println(applicationContext.getBeanDefinitionCount());
System.out.println(applicationContext.getBean("pool", ConnectionPool.class));
System.out.println(applicationContext.getBean(DatabaseProperties.class));
}
}
вот к примеру класс ConnectionPool
package ru.sergalas.spring.database.pool;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
@Component("pool")
@RequiredArgsConstructor
@Slf4j
public class ConnectionPool {
@Value("${db.username}")
private final String username;
@Value("${db.pool.size}")
private final Integer poolSize;
@PostConstruct
private void init() {
log.info("Init connection pool");
}
@PreDestroy
private void destroy() {
log.info("Clean connection pool");
}
}
но при запуске проекта выдается ошибка
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'pool' available
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:874)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1358)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:309)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1160)
at ru.sergalas.spring.Main.main(Main.java:17)
причем applicationContext.getBeanDefinitionCount() выдает 6 и это спринговые бины. Хотя все мои классы помечены или @Component или @Services, @Repository не подскажете почему ?