@controller用来定义控制层的组件
@service用来定义业务层的组件
@repository用来定义持久层的组件
@ component用来定义不在上述范围内的一般性组件
上面组件的名称默认是类名的首字母小写,如果要重命名,则这样@controller("beanName")
当在spring中配置了<context:annotation-config/> 和<context:component-scan base-package="*">时,上述四种注解的组件都会由spring容器来创建为bean并由自己来管理.
那么创建了上面这些组件后,又是如何来注入的呢,这时就由@autowired来配置了。
只需要在private的属性上加上@autowired就可以自动把接口属性的实现类的bean注入,注意不需要setter,getter方法
上面如果一个接口属性有两个实现类,怎么办,这时就要用@qualifier来特别说明要注入哪个bean了。