Bản chất của Spring là tạo ra các đối tượng trong container của nó để khi nào bạn cần thì gọi ra sử dụng là được. Vậy thì chúng ta sẽ thấy có 2 loại đối tượng trong Spring: 1 là đối tượng của Spring có sẵn ta chỉ cần đem ra sử dụng, còn 2 là loại đối tượng ta thêm vào trong Spring cho nó quản lý và lấy ra dùng khi cần. Đối tượng này mình hiểu đơn giản nó là Bean trong Spring.

Vấn đề đặt ra là khi ta thêm 1 bean vào trong Spring thì có rất nhiều khả năng các bean này nó phụ thuộc lẫn nhau – tức là cái thằng bean này sẽ chứa bean kia hay nó lại phụ thuộc hoặc bị phụ thuộc vào bean khác.

Giải pháp là chúng ta sẽ đưa việc phụ thuộc lẫn nhau của các bean bằng cách config bằng tay :

<bean id="beanOne" class="ExampleBean" depends-on="manager"/>

<bean id="manager" class="ManagerBean" />
<bean id="beanOne" class="ExampleBean" depends-on="manager,accountDao">
  <property name="manager" ref="manager" />
</bean>

<bean id="manager" class="ManagerBean" />
<bean id="accountDao" class="x.y.jdbc.JdbcAccountDao" />

Tham khảo 3.3.3. Using depends-on:

https://docs.spring.io/spring/docs/2.5.3/reference/beans.html

Vậy liệu có cách nào để chúng ta không cần thêm sửa bằng tay như thế này không. Đó lý do thằng @Autowired ra đời.

@autowired trong spring

@autowired trong spring có 3 cách viết như : byType, byName, constructer.

Trong khuôn khổ bài viết này chỉ dừng lại ở việc đưa ra lý do có thằng anotation @Autowired, còn việc cách sử dụng và config thì các bạn có thể tham khảo chi tiết tại các bài viết sau nhé .

Viết câu trả lời

Drop Images