Почему Spring boot делает пристрастие при обработке аннотации @Bean для функции void - PullRequest
1 голос
/ 21 мая 2019

У меня есть 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);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...