Spring 3 JavaConfig @Import пример

Spring 3 JavaConfig @Import пример

Обычно вы разбиваетеsplit a large Spring XML bean files на несколько небольших файлов, сгруппированных по модулям или категориям, чтобы сделать вещи более удобными и модульными. Например,



    
        

В Spring3 JavaConfig эквивалентная функциональность@Import.

package com.example.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@Import({ CustomerConfig.class, SchedulerConfig.class })
public class AppConfig {

}

Пример @Import

См. Полный пример использования JavaConfig@Import.

1. Структура каталогов

Структура каталогов этого примера.

directory structure of this example

2. Весенние бобы

Две простые весенние бобы.

Файл: CustomerBo.java

package com.example.core;

public class CustomerBo {

    public void printMsg(String msg) {

        System.out.println("CustomerBo : " + msg);
    }

}

Файл: SchedulerBo.java

package com.example.core;

public class SchedulerBo {

    public void printMsg(String msg) {

        System.out.println("SchedulerBo : " + msg);
    }

}

3. Пример @Configuration

Теперь используйте JavaConfig@Configuration для объявления вышеуказанных bean-компонентов.

Файл: CustomerConfig.java

package com.example.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.example.core.CustomerBo;

@Configuration
public class CustomerConfig {

    @Bean(name="customer")
    public CustomerBo customerBo(){

        return new CustomerBo();

    }
}

Файл: SchedulerConfig.java

package com.example.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.example.core.SchedulerBo;

@Configuration
public class SchedulerConfig {

    @Bean(name="scheduler")
    public SchedulerBo suchedulerBo(){

        return new SchedulerBo();

    }

}

4. @Import пример

Используйте@Import для загрузки нескольких файлов конфигурации.

Файл: AppConfig.java

package com.example.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@Import({ CustomerConfig.class, SchedulerConfig.class })
public class AppConfig {

}

5. Запустить его

Загрузите основной файл конфигурации и протестируйте его.

package com.example.core;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.example.config.AppConfig;

public class App {
    public static void main(String[] args) {

        ApplicationContext context = new AnnotationConfigApplicationContext(
                AppConfig.class);

        CustomerBo customer = (CustomerBo) context.getBean("customer");
        customer.printMsg("Hello 1");

        SchedulerBo scheduler = (SchedulerBo) context.getBean("scheduler");
        scheduler.printMsg("Hello 2");

    }
}

Выход

CustomerBo : Hello 1
SchedulerBo : Hello 2

Скачать исходный код

Скачать -Spring3-JavaConfig-Import-Example.zip (7 КБ)