JavaRush /Java блог /Java Developer /Spring — это не страшно, учимся решать проблемы
Павел
11 уровень

Spring — это не страшно, учимся решать проблемы

Статья из группы Java Developer
СОДЕРЖАНИЕ ЦИКЛА СТАТЕЙ Сегодняшняя статья будет квинтэссенцией альтруизма (халява – одним словом). Я для себя разработал одну очень полезную библиотеку. Она решает любые проблемы. Веб-сервис? Пожалуйста! Чат-бот? Сверточная нейронная сеть? Да без проблем! Мне не жалко с вами ей поделиться: «ru.java.rush.chuck-norris-1.0.jar» Она названа в честь Чака Норриса за умение быстро решать проблемы. Давайте я уже вам покажу, как ей пользоваться. Качаем файл, сохраняем туда, где его потом можно будет легко найти. Теперь по быстрому создадим пустой spring-boot проект, подключим Lombok. В проекте создадим пакет utils и знакомый нам уже class InitiateUtils implement CommandLineRunner. Загрузим библиотеку в проект следующим образом (у новых версий Intellij IDEA «+» находится слева внизу, над надписью Dependencies storage format). Теперь библиотека появилась в открывающемся списке External Libraries проекта (возможно, надо будет после этого перезапустить проект). Настало время внедрить нашего Чака в class InitiateUtils и реализовать там же метод для решения всех проблем. В параметр метода напишем нашу проблему: "Я хочу написать супер-пупер проект, чтобы меня сразу взяли в Гугл!".

package ru.java.rush.utils;

import lombok.RequiredArgsConstructor;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Service;
import ru.java.rush.ChuckNorris;

@Service
@RequiredArgsConstructor
public class InitiateUtils implements CommandLineRunner {

    private final ChuckNorris chuckNorris;

    @Override
    public void run(String... args) throws Exception {
        //метод для решения всех проблем
        chuckNorris.SolutionToAllProblems("Хочу написать супер-пупер проект, чтобы меня сразу взяли в Гугл!");
    }
}
Сейчас этот парень в шляпе начнет творить чудеса. Запускаем проект.Spring — это не страшно, учимся решать проблемы - 1Встречаются как-то раз Чак Норрис и Дмитрий Нагиев в общественной бане… КАК!!?? ЧТО!?? Ошибка? Да еще и на чужом языке! Не может быть, ведь мы все делали как написано выше! О мой бог! Это значит, мы не напишем супер-пупер проект, и нас не возьмут в Гугл, и мы не попадем в Hollywood и не увидим там мистера Норриса!😭😭😭 Так, отставить! Чак Норрис никогда не плачет от ошибок, это ошибки плачут от него! Давайте разбираться, вот собственно вся ошибка:

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in ru.java.rush.utils.InitiateUtils required a bean of type 'ru.java.rush.ChuckNorris' that could not be found.


Action:

Consider defining a bean of type 'ru.java.rush.ChuckNorris' in your configuration.
Я в английском не силен, но тут говорится примерно следующее: Что приложение не запустилось, потому что для параметра конструктора (Кстати, вы знаете о каком конструкторе идет речь? В коде я никаких конструкторов не видел) InitiateUtils требуется Бин типа ChuckNorris, который не найден. Дальше предлагает нам решение: Попробуйте определить Бин ChuckNorris в своей конфигурации. Другими словами, нужно сконфигурировать бин! Те кто читал ссылки, которые я оставлял ранее, выдохнули с облегчением, они знают что и как делать. Ну а те кто, еще не почитал, наверное, сейчас почитают. Как думаете ChuckNorris сейчас находится в контексте или нет? Думаю, вы дальше и без меня справитесь: Сконфигурируете бин ChuckNorris и вызовете метод для решения всех проблем. А я пока пойду пересмотрю пару серий Крутого Уокера…
Комментарии (6)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Василий Бабин Уровень 28 Expert
24 августа 2021
Хорошая библиотека! 👍😁
Богдан Уровень 29
25 января 2021
Автору - jar'ник с крутым Уокером поврежден...