Spring—Bean的装配方式—基于注解的七种装配方式
(1)@Component
该注解是一个泛化的概念,仅仅表示一个组件对象(Bean),可以作用在任何层次上。
(2)@Repository
该注解用于将数据访问层(Dao层)的类标识为Bean,即注解数据访问层Bean,其功能与@Componet相同
(3)@Service
该注解用于标注一个业务逻辑组件类(Service层),其功能与@Component相同
(4)@Controller
该注解用于标注一个控制器组件类(SpringMVC的Controller),其功能与@Componet相同
(5)@Autowired
该注解可以对类成员变量、方法及构造方法进行标注,完成自动装配的功能。通过使用@Autowired来消除setter和getter方法。默认按照Bean的类型进行装配。
(6)@Resource
该注解与@Autowired的功能一样,区别在于该注解默认是按照名称来装配的,只有当找不到与名称匹配的Bean时才会按照类型来装配注入;而@Autowired默认按照Bean的类型进行装配,如果想按照名称来装配注入,则需要和@Qualifier注解一起使用。
@Resource注解有两个属性—name和type。name属性指定Bean实例名称,即按照名称来装配注入;type属性指定Bean类型,即按照Bean的类型进行装配。
(7)@Qualifier
该注解与@Autowired注解配合使用。当@Autowired注解需要按照名称来装配注入时,需要和该注解一起使用,Bean的实例名称由@Qualifier注解的参数指定。