Вы здесь:

Проект для демонстрации на Kotlin https://github.com/cherepakhin/spring_config_k
Аналогичный проект на Java https://github.com/cherepakhin/spring_config

Настройки Spring beans с помощью xml-файла resources/beans.xml.

Определение beans в resources/beans.xml:


<bean id="russianGreeter" class="ru.perm.v.springconfig_k.greeters.RussianGreeter"/>
<bean id="germanyGreeter" class="ru.perm.v.springconfig_k.greeters.GermanyGreeter"/>
<bean id="englishGreeter" class="ru.perm.v.springconfig_k.greeters.EnglishGreeter"/>

<bean id="selectedGreeterService" class="ru.perm.v.springconfig.service.GreeterService">
   <property name="greeter" ref="russianGreeter"/>
</bean>

Для импортирования бинов, определенных в beans.xml, создан класс conf/BeansFromXmlConfiguration.kt:

package ru.perm.v.springconfig_k.conf

@Configuration
@ImportResource("classpath*:beans.xml")
class BeansFromXmlConfiguration {
}

С помощью аннотаций @Configuration и @Bean в conf/BeansFromCodeConfiguration.kt.
@Configuration
class BeansFromCodeConfiguration {

    /**
    * for injection use
    * @Autowired
    * lateinit var staticBean:String
    */
    @Bean("staticBean")
    fun getMyStaticBean() = "STATIC_BEAN"
}

@Bean
fun beanOneConfigFromCode() = "BEAN_ONE"

Более подробно в https://github.com/cherepakhin/spring_config_k

Настройка bean из внешнего источника (н.п. базы данных).

TODO: Пример в проекте МТС.

Установки для Java 11.

Использована Java 11.

$ echo $JAVA_HOME
> /usr/lib/jvm/java-1.11.0-openjdk-amd64

Для установки выполнить:

$ export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64

В Idea установить File->Project Structure->Project Settings->Project->SDK

java11

Примечания.

1. Используется Java 11:

$ echo $JAVA_HOME
~/prog/kotlin/spring_config_k
$ export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
~/prog/kotlin/spring_config_k$ ./gradlew clean test

2. В build.gradle.kts можно использовать переменные из application.yaml. Пример:

tasks.withType<Test>() {
    allureConfig
    useJUnitPlatform()
    systemProperties["PORT"] = properties["port"]
    systemProperties["URL"] = properties["url"]
}