.:: CODE SNIPPET ::.

"Your time is limited, so don't waste it living someone else's life"

Sử dụng configuration class trong Spring Boot


1. Sử dụng class Configuration
Spring Boot ưu ái việc sử dụng các class Configuration. Mặc dù bạn có thể hoàn toàn sử dụng việc gọi hàm SpringApplication.run() ngay bên trong file XML, nhưng nhìn chung Spring khuyên điểm xuất phát của ứng dụng là một class với annotation @Configuration. Thông thường thì class với hàm main() thì nên là cũng là lớp chứa @Configuration.

import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Application
{
    public static void main(final String[] args)
    {
        SpringApplication.run(Application.class, args);
    }
}

2. Cách sử dụng nhiều class Configuration
Trong một dự án, có thể có nhiều hơn một component riêng biệt mà chúng ta muốn tách biết những config của chúng ra để tiện cho việc maintain sau này. Spring cũng hổ trợ chúng ta hiện thực điều này bằng 2 cách sau:
+ Sử dụng annotation @Import để load các configuation riêng biệt lại trong một file Configuration chính.

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

@Configuration
@Import(value={CustomerConfiguration.class})
public class Application
{
    public static void main(final String[] args)
    {
        SpringApplication.run(Application.class, args);
    }
}

+ Sử dụng annotation @ComponentScan để tìm những class configuration.

import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.ComponentScan;

@Configuration
@Import(value={})
@ComponentScan
public class Application
{
    public static void main(final String[] args)
    {
        SpringApplication.run(Application.class, args);
    }
}

3. Cách sử dụng hỗn hợp giữa class Configuration và XML source.
Thông thường là cũng phải dùng XML để config. Nên Spring support người dùng annotation @ImportSource để load các configuration trong các file XML vào Spring context. Cách sử dụng như sau:

import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.ImportResource;

@Configuration
@ImportResource(value = { "/vn/sample/config/context.xml" })
@Import(value={})
public class Application
{
    public static void main(final String[] args)
    {
        SpringApplication.run(Application.class, args);
    }
}

Tùy mỗi người sử dụng, nhưng theo tôi thì chúng ta nên chỉ sử dụng một class @Configuration nằm ở root package. Sau đó import các XML source chứa tất cả các beans configuration vào. Như vậy thì bức tranh tổng thể của các bean trong dự án sẽ nằm gọn lại một chỗ, hoặc nhiều nhất là phân tán thành các file XML nằm cạnh nhau mà thôi. Điều này giúp tiết kiệm thời gian để theo dõi và maintain các bean đã config trong Spring context hơn.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: