【Spring】將元件加入到容器中的方法
阿新 • • 發佈:2021-01-25
將元件(類)加入到ioc容器中的方法
1. 通過bean方法,可將元件加入到IOC容器中:
<bean id="XXX" class="XXX"></bean>
2. 通過註解的方式將元件加入到IOC容器中:
(A)通過給bean上新增某些註解,可以快速將元件加入到ioc容器中。
(B)在某個元件(類)上新增上任何一個註解都能快速將整個元件加入到IOC容器中。
(C)spring為我們提供了一下註解:
@Controller:控制器;推薦給控制層(Servlet包下的這些)的元件加這個註解。 @Service:伺服器層(業務邏輯層);我們推薦業務邏輯層的元件新增這個註解;BookService
@Repository:給資料庫層(持久化層,dao層)的元件新增這個註解
@Component:給不屬於以上幾層的元件新增這個註解
(D)註解可以隨便加,Spring底層不會去驗證你的這個元件
但是推薦各自層加各自注解;註解是給我們程式設計師看的;
具體步驟:
1)給需要新增到IOC容器中的元件上標註對應註解;
2)告訴Spring,自動掃描加了註解的元件;依賴context名稱空間;
3)匯入aop包;
1)給需要新增到IOC容器中的元件上標註對應註解:
package com.atguigu.dao;
import org.springframework.stereotype.Repository;
@Repository
public class BookDao {
}
package com.atguigu.service;
import org.springframework.stereotype.Service;
@Service
public class BookService {
}
package com.atguigu.servlet;
import org.springframework.stereotype.Controller;
@Controller
public class BookServlet {
}
2)告訴Spring,自動掃描加了註解的元件;依賴context名稱空間(該步在容器配置檔案中新增程式碼):
<context:component-scan base-package="com.atguigu"></context:component-scan>
3)匯入aop包(要新增至路徑):
特別注意:
- 註解的含義:(A)說明了該類屬於哪個層(B)將該類加入到了容器中。
- 要從容器中直接獲取沒有id屬性(即沒有bean例項)的元件時,步驟和有獲取bean例項的 一樣:(A)建立IOC容器(B)ioc.getbean:其中物件名是元件名首字母小寫。
- 如果要給元件重新命名,只需要在註解後面新增名字即可(如:@Service(“bookDaohahaha”)),ioc.getbean時用該名即可獲取元件。
- 和用一樣,Spring預設單例項。
- 要將元件變為多例項,可在元件上再新增一個註解: