Spring通过自动装配实现引用类型的注入,主要有以下几种方式:
1、在xml《bean》中使用autowire属性,即可完成:
<bean id = "student" class="com.model.student" autowire="byName" ></bean>
autowire中有三种方式注入:
byName: 通过名字(bean的id名称)去找IOC容器中符合要求的bean进行自动装配;
byType:通过类型(bean的class类型)去找,但是如果IOC容器中有同一个类型的2个bean,就会报错,使用前提注入类型只有一个bean;
constructor:通过构造器进行匹配,识别构造器中的类型,再去找对应的bean,和byType类似
注意:如果想把所有的bean都设置为自动装配,在xml文件头设置:default-autowire="byName",自动装配可以减少代码量,但是会降低程序的可阅读性,使用需谨慎
2、再程序中通过注解方式进行:
- 通过@component(“beanID”)方式:在xml文件中先开启扫描配置:<context:component-scan base-package="com.model.student"></context component-scan>;然后在Java类中添加@component("id") ;Spring在启动的时候,会根据base-package设置的路径去扫描对应得文件,如果有@component注解,则将其装配到IOC容器中
- 使用component注解虽然方便,但是,对所有的文件都起作用,意义不明确,所以对其进行细分:
- dao层使用@Repository注解
- service层使用@Service注解
- Controller层使用@Controller注解