spring bean

来源:互联网 发布:网络兼职配音 编辑:程序博客网 时间:2024/06/05 12:40

public interface People{

  public void phone(number);

}

其实现类

public class student implement{

  public void phone(number){

    print("call for "+number);

}

}

测试类

public class test() {

 private People people;//添加其get set 方法即set注入

省略

到这可能会疑惑了,为什么调用接口,用接口干嘛

public void myTest(){

print(people.phone);

调用接口 的空方法有什么用,

如果你这么认为就大错特错le

application.xml

<beans>

<bean id="people“ class=”student“></bean>

<bean id="test" class="test">

<property name="people与类中注入一样" ref="people"></property>

//注入的还是实现接口的实例,只是命名混肴了spring通过反射

</bean>

</beans>

但是看起来不用接口也行,其实可行

但后面spring代理时就有问题了

spring代理有两种,jdk代理和cglib代理,简单说明其区别

cglib代理普通的类以继承重写方法的形式,所以不能是final,需导入cglib包并在application.xml配置

而jdk代理的泪必须是一个实现接口的泪,所以说用接口即set 注入的时候还是得写接口,然后spring根据bean配置和反射进行和实现类关联

2用接口还有一个好处,spring倡导面向接口编程,即实现某个接口大体方向不变,只是其内部细节改变 ,便于后期维护

spring 面向接口编程

在spring中,当一个类中需要依赖某个组件,一般是类要是普通属性值直接在xmlvalue ,我们用接口的形式去生命这个组件,但是不给它真正的实例,然后由xml文件来注入实现

该接口的实例,

本人菜鸡,若有错误,请指正


原创粉丝点击