-
В
pom.xml
добавьте зависимостьorg.springframework:spring-context:5.2.1.RELEASE
. -
В методе main создайте новый экземпляр класса
AnnotationConfigApplicationContext
- контейнер, в котором будут храниться ваши бины. На вход ему будет передаваться классMainConfiguration
. В конфигурации используйте такие аннотации, как@Configuration
и@Bean
. -
В классе
MainConfiguration
сделайте импорт двух других классов-конфигураций:- В классе
RepositoryConfiguration
сделайте описание биновArrayListItemRepository
иLinkedListItemRepository
- В
ArrayListItemRepository
объектыItem
должны храниться вArrayList
иinitialSequence
считываться из пропертей. - В
ArrayListItemRepository
объектыItem
должны храниться вLinkedList
иinitialSequence
генерироваться случайно.
- В
- В классе
InitializerConfiguration
реализуйте factory-beanColorFactory
, который умеет выдавать сущности биновColor
по запросуgetColor
. БинColor
обязан создаваться каждый раз заново.
- В классе
-
Имплементируйте
SimpleItemService
- сделайте так, чтобы необходимые зависимости добавлялись к нему через методset..
и конструктор. В чём разница этих подходов? -
Сделайте так, чтобы бин
ColorFactory
создавался не на этапе создания контекста, а при первом обращении к нему. -
Сделайте так, чтобы используемая реализация
ItemRepository
выбиралась исходя из пропертиitem.repository.implementation
из значенийarray
илиlinked
. При отсутствии проперти необходимо использоватьArrayListItemRepository
. -
В классе
SpringCoreTemplate
в методеmain
создайте экземплярApplicationContext
и передайте ему на вход созданный экземплярAnnotationConfigApplicationContext
. Сделайте парочку вызовов методаgetBean
, чтобы убедиться, что все бины создались и корректно работают. -
Подключите зависимость
org.springframework:spring-test:jar:5.2.1.RELEASE
. Напишите тесты, которые проверяют основную бизнес-логику и то, что ваш контекст загружается успешно.
khaimindm / spring-core-template Goto Github PK
View Code? Open in Web Editor NEWThis project forked from java-online-course/spring-core-template