11/08/2018, 19:16

Dependency Injection trong Spring

Spring Framework là gì? Dependency Injection (DI) trong Spring là một mẫu thiết kế đượ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. ...

Spring Framework là gì?

Dependency Injection (DI) trong Spring là một mẫu thiết kế đượ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;
    }
}
Spring Framework là gì?
0