У меня есть 2 функции в моем классе конфигурации, который использует @Bean
аннотация, одна функция возвращает void, и я хочу, чтобы вторая тоже возвращала void.
, но когда я компилирую Spring, загружаюсь и запускаю свое приложениея получаю эту ошибку
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'reciveMessage' defined in class path resource [com/XXXXXX/Configuration/Configuration.class]: Invalid factory method 'reciveMessage': needs to have a non-void return type!
, но я не получаю никакого сообщения об ошибке, если я удаляю второй метод, Spring boot обрабатывает мой первый пустой метод без каких-либо проблем.
Так что мой вопрос, почемупроисходит ли это, почему запускается моя первая функция void, а не моя вторая функция void.
есть ли способ добавить более одной функции void с аннотацией @Bean
.
вот мой код
package com.beanTester.start.beanTester;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.logging.*;
@Configuration
class configuration {
private Logger logger;
@Value("${logConfigPath}")
private String path;
private LogManager manager = LogManager.getLogManager();
@Bean
public void logging_init() throws IOException {
FileInputStream inputStream;
logger = Logger.getLogger(this.getClass().getPackage().getName());
try {
inputStream = new FileInputStream(path);
manager.readConfiguration(inputStream);
} catch (FileNotFoundException e) {
logger.setLevel(Level.INFO);
FileHandler logFile = new FileHandler("DefaultLogger.log");
logFile.setFormatter(new SimpleFormatter());
logger.setParent(Logger.getGlobal());
logger.addHandler(logFile);
}
}
@Bean
public String sendMessage() {
return "I just send a message";
}
@Bean
public void reciveMessage(String message) {
System.out.println(" I recived a message called " + message);
}
}