@Component
,@Controller
(控制层),@Service
(业务层),@Repository
(持久层)
以上四个注解的功能完全相同,不过在实际开发中,要在不同功能的类上加上响应的注解
1、完成组件化管理的过程
- 在需要被Spring管理的类上加上响应的注解
- 在配置文件中通过
<context:component-scan>
对所设置的包结构进行扫描,就会讲加上注解的类,作为Spring的组件进行加载
2、组件
组件:是指Spring中管理的bean
作为Spring的组件进行加载:会自动在Spring的配置文件中生成相对应的bean,这些bean的id会以类的首字母小写为值;也可以通过@Controller("beanId")为自动生成的bean指定id
3、自动装配
在需要赋值的非字面量属性上,加上@Autowired
,就可以在Spring容器中,通过不同的方式匹配到相对应的bean
-
@Autowired
装配时,会默认使用byType
的方式,此时要求Spring容器中只有一个能够为其赋值当
byType
实现不了装配时,会自动切换到byName
,此时要求Spring让其中,有一个bean的id和属性名一致若自动装配时,匹配到多个能够赋值的bean,可使用
@Qualifier(value="beanId")
指定使用的bean -
@Autowired
和@Qualifier(value="beanId")
可以一起作用域一个带形参的方法上,此时,@Qualifier(value="beanId")
所指定的bean作用于形参