# @Qualifier的作用 ###### tags: `SpringMVC-會用到的註解` Spring 使用@Autowired注入的介面有多個@Bean類時,可以搭配@Qualifier控制要注入哪個實例。 #### 介面 ```java= public interface BookService { //增加一本書 int addBook(Books books); //刪除一本書 int deleteBookByID(int id); //更新一本書 int updateBook(Books books); //查詢一本書 Books queryBookById(int id); //查詢全部的書 List<Books> queryAllBook(); } ``` #### 引用BookService介面的BookServiceImpl ```java= public class BookServiceImpl implements BookService{ //service調dao層:組合dao層 private BookMapper bookMapper; public void setBookMapper(BookMapper bookMapper) { this.bookMapper = bookMapper; } @Override public int addBook(Books books) { return bookMapper.addBook(books); } @Override public int deleteBookByID(int id) { return bookMapper.deleteBookByID(id); } @Override public int updateBook(Books books) { return bookMapper.updateBook(books); } @Override public Books queryBookById(int id) { return bookMapper.queryBookById(id); } @Override public List<Books> queryAllBook() { return bookMapper.queryAllBook(); } } ``` #### controller ```java= @Controller @RequestMapping("/book") public class BookController { //controller調 service層 @Autowired @Qualifier("BookServiceImpl") private BookService bookService; } ``` ### 問題:當有複數的impl引用service層的BookService來實現,控制層BookController在使用@Autowired,該如何判斷使用哪個impl來進行注入? ### 答案:利用@Qualifier來決定注入的impl ### 相關閱讀 [@Autowired的用法](https://hackmd.io/mAVPK0IjSa6Ge19t86FsIA)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up