Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 11.12.2014
Сообщений: 49

Spring Boot и чайник. Ошибка зависимости при создании бина

02.12.2018, 20:46. Показов 2956. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую, уважаемые форумчане. Начала осваивать яву буквально пару недель назад, поэтому, прошу понять, простить и помочь))

Пишу в NetBeans, если это вдруг важно. Было простое мавен приложение, задача - переделать его в спринг бут.
Добавила зависимости в pom, сделала класс PropertyReader, который из модели вытаскивает нужные данные. Долго думала, для чего же нужен PropertyService.. Решила объявить его, как интерфейс. Так же проблема была с понимаем значения слова "заинжектить ".... Поняла его, как вставить)) Короче вот пункты, которые я попробовала реализовать, но с ними возникли проблемы.

----------------------------------------------------------------------------------------------------------------
- Сделать класс, отвечающий за получение данных из .properties файлов, Spring бином (Дальше данный класс будет упоминаться как PropertyReader, у себя можно использовать любое другое название)
- Создать класс - PropertyService с методом отвечающим за получение данных , сделать его Spring бином, заинжектить в него PropertyReader и в методе получения данных сервиса вызвать метод чтения данных класса PropertyReader
- Сделать класс, отвечающий за генерацию html файла (Далее HtmlGenerator) Spring бином, заинжектить в него сервис (PropertyService) и в методе генерации html файла использовать метод получения данных сервиса (PropеrtyService)
----------------------------------------------------------------------------------------------------------------
При запуске получаю ошибку.

Кликните здесь для просмотра всего текста
21:32:05.347 [main] WARN org.springframework.context.annotation.A nnotationConfigApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.Unsati sfiedDependencyException: Error creating bean with name 'propertyReader' defined in file [C:\Users\Zver\Documents\NetBeansProjects \Java15final\java15klon\target\classes\c om\mycompany\resume\PropertyReader.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuch BeanDefinitionException: No qualifying bean of type 'java.lang.String' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
21:32:05.347 [main] DEBUG org.springframework.beans.factory.suppor t.DefaultListableBeanFactory - Destroying singletons in org.springframework.beans.factory.suppor t.DefaultListableBeanFactory@4501b7af: defining beans [org.springframework.context.annotation.i nternalConfigurationAnnotationProcessor, org.springframework.context.annotation.i nternalAutowiredAnnotationProcessor,org. springframework.context.annotation.inter nalRequiredAnnotationProcessor,org.sprin gframework.context.annotation.internalCo mmonAnnotationProcessor,org.springframew ork.context.event.internalEventListenerP rocessor,org.springframework.context.eve nt.internalEventListenerFactory,htmlGene rator,javaApplication1,propertyReader,or g.springframework.boot.autoconfigure.Aut oConfigurationPackages,org.springframewo rk.boot.autoconfigure.context.PropertyPl aceholderAutoConfiguration,org.springfra mework.boot.autoconfigure.condition.Bean TypeRegistry,propertySourcesPlaceholderC onfigurer,org.springframework.boot.autoc onfigure.jackson.JacksonAutoConfiguratio n$Jackson2ObjectMapperBuilderCustomizerC onfiguration,standardJacksonObjectMapper BuilderCustomizer,spring.jackson-org.springframework.boot.autoconfigure.j ackson.JacksonProperties,org.springframe work.boot.context.properties.Configurati onPropertiesBindingPostProcessor,org.spr ingframework.boot.context.properties.Con figurationPropertiesBindingPostProcessor .store,org.springframework.boot.autoconf igure.jackson.JacksonAutoConfiguration$J acksonObjectMapperBuilderConfiguration,j acksonObjectMapperBuilder,org.springfram ework.boot.autoconfigure.jackson.Jackson AutoConfiguration$JacksonObjectMapperCon figuration,jacksonObjectMapper,org.sprin gframework.boot.autoconfigure.jackson.Ja cksonAutoConfiguration,jsonComponentModu le,org.springframework.boot.autoconfigur e.validation.ValidationAutoConfiguration ,defaultValidator,methodValidationPostPr ocessor,org.springframework.boot.autocon figure.jmx.JmxAutoConfiguration,mbeanExp orter,objectNamingStrategy,mbeanServer,o rg.springframework.boot.autoconfigure.co ntext.ConfigurationPropertiesAutoConfigu ration,org.springframework.boot.autoconf igure.web.HttpMessageConvertersAutoConfi guration$StringHttpMessageConverterConfi guration,stringHttpMessageConverter,spri ng.http.encoding-org.springframework.boot.autoconfigure.w eb.HttpEncodingProperties,org.springfram ework.boot.autoconfigure.web.JacksonHttp MessageConvertersConfiguration$MappingJa ckson2HttpMessageConverterConfiguration, mappingJackson2HttpMessageConverter,org. springframework.boot.autoconfigure.web.J acksonHttpMessageConvertersConfiguration ,org.springframework.boot.autoconfigure. web.HttpMessageConvertersAutoConfigurati on,messageConverters,org.springframework .boot.autoconfigure.info.ProjectInfoAuto Configuration,spring.info-org.springframework.boot.autoconfigure.i nfo.ProjectInfoProperties,org.springfram ework.boot.autoconfigure.web.MultipartAu toConfiguration,multipartConfigElement,m ultipartResolver,spring.http.multipart-org.springframework.boot.autoconfigure.w eb.MultipartProperties,org.springframewo rk.boot.autoconfigure.web.WebClientAutoC onfiguration$RestTemplateConfiguration,r estTemplateBuilder,org.springframework.b oot.autoconfigure.web.WebClientAutoConfi guration]; root of factory hierarchy
21:32:05.347 [main] DEBUG org.springframework.beans.factory.suppor t.DisposableBeanAdapter - Invoking destroy() on bean with name 'org.springframework.boot.context.proper ties.ConfigurationPropertiesBindingPostP rocessor'
Exception in thread "main" org.springframework.beans.factory.Unsati sfiedDependencyException: Error creating bean with name 'propertyReader' defined in file [C:\Users\Zver\Documents\NetBeansProjects \Java15final\java15klon\target\classes\c om\mycompany\resume\PropertyReader.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuch BeanDefinitionException: No qualifying bean of type 'java.lang.String' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
at org.springframework.beans.factory.suppor t.ConstructorResolver.createArgumentArra y(ConstructorResolver.java:749)
at org.springframework.beans.factory.suppor t.ConstructorResolver.autowireConstructo r(ConstructorResolver.java:189)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.aut owireConstructor(AbstractAutowireCapable BeanFactory.java:1193)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBeanInstance(AbstractAutowireCapableB eanFactory.java:1095)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.doC reateBean(AbstractAutowireCapableBeanFac tory.java:513)
at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBean(AbstractAutowireCapableBeanFacto ry.java:483)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory$1.getObject(Abstra ctBeanFactory.java:306)
at org.springframework.beans.factory.suppor t.DefaultSingletonBeanRegistry.getSingle ton(DefaultSingletonBeanRegistry.java:23 0)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory.doGetBean(Abstract BeanFactory.java:302)
at org.springframework.beans.factory.suppor t.AbstractBeanFactory.getBean(AbstractBe anFactory.java:197)
at org.springframework.beans.factory.suppor t.DefaultListableBeanFactory.preInstanti ateSingletons(DefaultListableBeanFactory .java:761)
at org.springframework.context.support.Abst ractApplicationContext.finishBeanFactory Initialization(AbstractApplicationContex t.java:867)
at org.springframework.context.support.Abst ractApplicationContext.refresh(AbstractA pplicationContext.java:543)
at org.springframework.context.annotation.A nnotationConfigApplicationContext.<init> (AnnotationConfigApplicationContext.java :95)
at com.mycompany.resume.JavaApplication1.ma in(JavaApplication1.java:15)
Caused by: org.springframework.beans.factory.NoSuch BeanDefinitionException: No qualifying bean of type 'java.lang.String' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
at org.springframework.beans.factory.suppor t.DefaultListableBeanFactory.raiseNoMatc hingBeanFound(DefaultListableBeanFactory .java:1493)
at org.springframework.beans.factory.suppor t.DefaultListableBeanFactory.doResolveDe pendency(DefaultListableBeanFactory.java :1104)
at org.springframework.beans.factory.suppor t.DefaultListableBeanFactory.resolveDepe ndency(DefaultListableBeanFactory.java:1 066)
at org.springframework.beans.factory.suppor t.ConstructorResolver.resolveAutowiredAr gument(ConstructorResolver.java:835)
at org.springframework.beans.factory.suppor t.ConstructorResolver.createArgumentArra y(ConstructorResolver.java:741)
... 14 more
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 3.112s
Finished at: Sun Dec 02 21:32:05 GMT+04:00 2018
Final Memory: 8M/145M
------------------------------------------------------------------------
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default-cli) on project Resume: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/conflu... nException


Выкладываю основные файлы.

Java
1
2
3
4
5
6
7
8
9
10
11
package com.mycompany.resume;
 
import java.util.Properties;
import org.springframework.stereotype.Service;
 
@Service
public interface PropertyService  {
 
    public Properties read();
 
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.mycompany.resume;
 
import java.util.Properties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
 
@Component
class PropertyReader implements PropertyService//extends Thread 
{
    
    private String name;
    private Properties property;
    
    public PropertyReader(String name, Properties property)
    {
        this.name = name;
        this.property = property;
 //       this.start();
    }
    
    @Override
    public Properties read()
    {
       WorkWithFile wwf = new WorkWithFile();
       return wwf.readFile(name, property); 
    }
 
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.mycompany.resume;
 
import com.mycompany.resume.api.GenerateHtml;
import com.mycompany.resume.api.ValueFromProp;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Properties;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
 
@Component
public class HtmlGenerator {
    
    WorkWithFile wwf = new WorkWithFile();
    private String name;
    private Properties property;
    private ArrayList<String> resum;
    private ArrayList<String> html;
    private ModelProperty mp;
    ApplicationContext context;
    
    public void HtmlGenerator(String name, ApplicationContext context)
    {
        this.name = name;
        this.context = context;
    }
    
    public void generate() throws IOException
    {
        String text = "";
        
        wwf.createFile();
         
        PropertyReader ps = context.getBean(PropertyReader.class,name,property);
        property = ps.read();
        
        mp = new ModelProperty(property);
        
        ValueFromProp vfp = new ValueFromProp(resum, property, mp);
        resum = vfp.value(resum, property, mp);
       
        GenerateHtml genHTML = new GenerateHtml(resum);
        html = genHTML.generateHtml(resum,html);
        
        int j=0;
        for (int i=0; i<html.size()-1; i++)
        {
               text = text + html.get(i) + resum.get(j);
               j++;
        }
       
        wwf.writeFile(text);
        wwf.openFile(); 
    }   
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.mycompany.resume;
import java.io.IOException;
 
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 
@SpringBootApplication
public class JavaApplication1 {
    public static void main(String[] args) throws IOException, InterruptedException 
    {
        ApplicationContext context = new AnnotationConfigApplicationContext("com.mycompany.resume");
        HtmlGenerator html = context.getBean(HtmlGenerator.class);
        html.HtmlGenerator("personfinal.properties", context);
        html.generate();
    }
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2018, 20:46
Ответы с готовыми решениями:

Spring MVC ошибка при инициализации бина sessionFactory
ошибка: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path...

Spring Hibernate ошибка при создании SessionFactory
Добрый день! Пытаюсь получить UserService из главного контекста. Выскакивает ошибка Exception in thread &quot;main&quot;...

Инициализация бина в Spring
Добрый день. Для работы с базой данный используется интерфейс JpaRepository. Есть сервис, который работает взаимодействует с базой...

4
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
02.12.2018, 21:23
Цитата Сообщение от Katrin35 Посмотреть сообщение
Начала осваивать яву буквально пару недель назад
Либо вы необычайно талантливый человек, либо вы немного поторопились приступать к спрингу.
Предоставленный вами код намекает на второй вариант.. Ну да ладно не буду читать нотации
Тут проблем на самом деле несколько:

1. Вам нужно определиться вам нужно базовый spring или все же spring boot
2. Если spring boot, то там ApplicationContext создается другим способом.
3. Вам нужно почитать что такое dependency injection
4. Почтитать что такое бины, как они создаются как их можно инжектить в другие бины.
5. Узнать чем отличается аннотация @Service от @Component и почему ей не нужно аннотировать интерфейс.

Ну это то что с первого взгляда бросилось в глаза, даже не вникая в суть задания и кода.
0
0 / 0 / 0
Регистрация: 11.12.2014
Сообщений: 49
02.12.2018, 21:35  [ТС]
Цитата Сообщение от reisal78 Посмотреть сообщение
Либо вы необычайно талантливый человек, либо вы немного поторопились приступать к спрингу.
Предоставленный вами код намекает на второй вариант.. Ну да ладно не буду читать нотации
Тут проблем на самом деле несколько:

1. Вам нужно определиться вам нужно базовый spring или все же spring boot
2. Если spring boot, то там ApplicationContext создается другим способом.
3. Вам нужно почитать что такое dependency injection
4. Почтитать что такое бины, как они создаются как их можно инжектить в другие бины.
5. Узнать чем отличается аннотация @Service от @Component и почему ей не нужно аннотировать интерфейс.

Ну это то что с первого взгляда бросилось в глаза, даже не вникая в суть задания и кода.
Да, может, и поспешила. Я хожу на курсы и это домашнее задание. Поэтому приходится все осваивать в мега быстром темпе. Я знаю, что многое мне ещё предстоит освоить. Мне нужно сделать его в String Boot. Так как я пришла со знанием Шарпа и абсолютным нулем в Яве, я прочитала столько литературы, которая у меня в голове уже перемешалась. Я писала пост с просьбой о помощи в виде исправления ошибок и направления в нужную сторону, а не получения нотаций. Завтра крайний срок сдачи, а я сижу уже с этой темой третьи сутки напролёт. Я почитаю обязательно то, что вы указали, спасибо.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
03.12.2018, 04:21
Цитата Сообщение от Katrin35 Посмотреть сообщение
public PropertyReader(String name, Properties property)
чтобы создать экземпляр, надо в конструктор передать String name. Как спринг должен догадаться, где его взять?
Цитата Сообщение от Katrin35 Посмотреть сообщение
public void HtmlGenerator(String name, ApplicationContext context)
тут то же. Еще почему то инжектится ApplicationContext. Т.е. ты берешь и говоришь, HtmlGenerator зависит от ApplicationContext. Это просто жесть и ад.
Просто поправить не вариант, надо все убрать и переписать по-людски.
В качестве примера смотри https://github.com/spring-proj... -petclinic
0
0 / 0 / 0
Регистрация: 11.12.2014
Сообщений: 49
03.12.2018, 11:31  [ТС]
Да и конструктор там был, и контекст не передавался. С этой ошибкой я столько всего переворотила, значит, было правильно у меня, ну или близко к этому. Спасибо, буду пытаться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.12.2018, 11:31
Помогаю со студенческими работами здесь

Spring. Аннотации. Внедрение бина через сеттер в методе main
Всем привет! Изучаю Spring 5.0. Пытаюсь внедрить бин client в методе main. Получаю ошибку: SpringLoggerApplication.java ...

Spring MVC. 404 ошибка при включении Spring Data JPA в проект
Добрый день. Есть простой шаблонный проект с использованием Spring MVC и Maven. С зависимостями Spring MVC проект собирается нормально и...

Spring: а как вы разрешаете зависимости для spring ?
Прикручиваю авторизацию к своему мини-серверу и таки понимаю что я 5 минут ищу решение и 15 минут ищу куда переехала вон та библиотека в...

Ошибка при инициализации сервиса в представлении Vaadin [Spring-boot]
Пробую создать проект на Vaadin. Проект собирается нормально, все ui работают и т.д. Но любой сервис, который я пытаюсь инжектить в любом...

При загрузке компьютера ошибка: Reboot and Select proper Boot device or Insert Boot Media in selected Boot device and press a kay
Всем привет, возникла проблема, надеюсь подскажете как ее решить. Сам мало что понимаю в компьютерном железе, поэтому просьба писать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru