post-image

Dependency Injection trong Spring MVC

1. Tổng quan

Dependency Injection (DI) trong Spring là một mẫu thiết kế đMVCược sử dụng để loại bỏ sự phụ thuộc giữa các mã chương trình, giúp cho việc quản lý và kiểm thử ứng dụng dễ dàng hơn. Dependency Injection làm cho mã chương trình ít bị phụ thuộc vào nhau hơn.

 

Khi không sử dụng Dependency Injection

Hãy xem xét ví dụ sau, khi mà chúng ta tạo trực tiếp đối tượng address của lớp Address bên trong lớp Student. Rõ ràng là đối tượng address sẽ bị phụ thuộc vào Student. Mỗi khi muốn thay đổi đối tượng này thì phải thay đổi đối tượng student.

 
public class Student {

    private Address address;


    public Student() {

        address = new Address();

    }

}

 

Sử dụng Dependency Injection

Để đảo ngược tình thế trong ví dụ trên, nghĩa là làm cho student và address giảm phụ thuôc vào nhau, chúng ta có thể khởi tạo đối tượng address ở bên ngoài lớp Student và truyền vào thông qua Constructor hoặc phương thức Setter.

Thông qua Constructor

 
public class Student {

    private Address address;


    // constructor được sử dụng để truyền dependency

    public Student(Address address) {

        this.address = address;

    }

}

 

Thông qua phương thức Setter

 
public class Student {

    private Address address;


    // phương thức setter được sử dụng để truyền dependency

    public void setAddress(Address address) {

        this.address = address;

    }


    // phương thức getter trả về đối tượng address

    public Address getAddress() {

        return address;

    }

}

Đây chính là cơ chế tiêm phụ thuộc nổi tiếng. Và Spring ứng dụng triệt để cơ chế này để hỗ trợ nhà phát triển tạo ra các chương trình dễ mở rộng, dễ bảo trì, và dễ dàng kiểm thử.

Bạn hãy tìm hiểu cách để sử dụng cơ chế tiêm phụ thuộc này bằng vỏ bọc của Spring.

Leave a Reply

Your email address will not be published.