@Autowired用来配置类与类之间的依赖关系,即,一个类要调用另一个类的对象时就可以通过这个注解来自动装配。
1.BookDaoImpl类:
package com.oxygen.dao.impl; import com.oxygen.dao.BookDao; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Repository; @Repository("bookDao") @Scope("singleton") public class BookDaoImpl implements BookDao { public void save() { System.out.println("Book Dao Save..."); } }
2.BookServiceImpl类:
这个类定义了一个private BookDao bookDao,并且用bookDao调用了BookDao类里面的方法。
也就是说BookServiceImpl与BookDaoImpl有依赖关系,可以用@Autowa\ired注解自动把BookDao的对象注入到BookService当中。
注意下图,@Autowired注解时放在setter方法的。其实这个注解放在setter方法或者放在类对象上都可以使用。
package com.oxygen.service.impl; import com.oxygen.dao.BookDao; import com.oxygen.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class BookServiceImpl implements BookService {
private BookDao bookDao;
//放在setter方法上 @Autowired public void setBookDao(BookDao bookDao) { this.bookDao = bookDao; } public void save() { System.out.println("Book Service save..."); bookDao.save(); } }
3.测试@Autowired注解:
可以看到,即使把通过容器获取BookDao对象的两句注释掉,代码也能正常运行。这说明@Autowired注解能够自动生成对象。
3.@Autowired注解没有setter方法也可自动装配.
package com.oxygen.service.impl; import com.oxygen.dao.BookDao; import com.oxygen.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class BookServiceImpl implements BookService { //注意:没有setter方法Autowired也能自动装配 @Autowired private BookDao bookDao; public void save() { System.out.println("Book Service save..."); bookDao.save(); } }
标签:oxygen,Autowired,Spring,bookDao,BookDao,import,注解 From: https://www.cnblogs.com/majestyking/p/16817769.html