Spring context. Конфигурирование классов

Создал главный класс Main, класс InjectionContext и класс Vk Bot. Попытка управлять классом через инжекции не к чему не приводит. Ошибок нет, но и вывода сообщения нет. Подскажите пожалуйста в чем моя ошибка?

package reversbot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

@SpringBootApplication
public class Main {

    public static void main(String... args) {
        ApplicationContext context = new AnnotationConfigApplicationContext (InjectionContext.class);
    }

}
package reversbot;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import reversbot.injectioncontext.VkBot;

import javax.annotation.PostConstruct;

@Configuration
public class InjectionContext {

    @Bean
    public VkBot vkBot() {
        return new VkBot();
    }
}
package reversbot.injectioncontext;

import org.springframework.stereotype.Service;

@Service
public class VkBot {

    public static void hello(){
        System.out.println("Hello BOSS!!!!");
    }

}
plugins {
    id 'org.springframework.boot' version '2.7.2'
    id 'io.spring.dependency-management' version '1.0.12.RELEASE'
    id 'java'
}

group = 'ReversBot'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '18'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
    useJUnitPlatform()
}

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

Автор решения: Михаил Ребров

Все правильно Spring делает.

Ничего не происходит, потому что вы ничего не делаете.
В том смысле, что вы ничего не вызываете.
Да, вы создаете бин VkBot...
Но он ничего не делает!
По всей видимости вы ждете что он выведет в консоль Hello BOSS!!!!, но он этого не сделает, потому что Вы не вызываете данный метод (я про метод hello()).
Он вообще в статическом методе находится!

Если хотите чтобы бин при создании выводил в консоль Hello BOSS!!!! - перенесите данный код в конструктор или инициализирующий метод.

package reversbot.injectioncontext;

import org.springframework.stereotype.Service;

@Service
public class VkBot {
    // создаем конструктор
    public VkBot() {
        // и переносим вызов сюда
        System.out.println("Hello BOSS!!!!");
    }

    // Убираем данные метод
    // public static void hello(){ 
    //      System.out.println("Hello BOSS!!!!");
    // }
}

и все начинает выводиться

введите сюда описание изображения

→ Ссылка