当前位置: 代码迷 >> 综合 >> Spring DI 数据注入
  详细解决方案

Spring DI 数据注入

热度:46   发布时间:2023-09-18 15:31:09.0
<!-- spring的依赖注入依赖注入:IOC的作用:降低程序之间的耦合(依赖关系)依赖关系的管理:交给spring维护,在当前类中需要用到的其他类的对象,由spring提供,在配置文件中说明依赖关系的维护,即称为依赖注入:依赖注入:能注入的数据:基本类型和string其他的bean类型,在配置文件中注解配置过的bean复杂类型/集合类型注入的方式:第一种:使用构造函数提供第二种:使用set方法提供第三种:使用注解提供-->
<!--    构造函数的注入使用的标签:constructor-arg标签位置:bean标签的内部标签中的属性:type:用于指定要注入的数据的数据类型,该数据类型是构造函数中某个或某些参数的类型index:用于指定要注入的数据给构造函数中指定位置的参数,索引的位置是从0开始name:用于指定给构造函数中指定名称的参数赋值=======================最常用!===================================================以上三个用于指定给构造函数中哪个参数赋值value:给基本类型和String类型提供数据ref:用于引用ioc-bean配置的类型,常用于赋值时候无法直接赋值转化的类型的配置。优势:在获取bean对象的时候,注入数据是必须的操作,否则对象无法创建成功。弊端:改变了类对象的实例化方式,使在创建对象时,如果用不到这些数据也必须提供。====这种方法一般不用====
--><!--    set方法注入这个方法要求类中必须对属性有相应的构造方法,而且名称必须对应,不能有错。它先执行默认构造函数进行构造,再对属性进行赋值,也就是说不需要写满足所有情况的构造函数就像上面的注入方式一样。使用的标签:property标签位置:同上标签中的属性:name:用于指定给构造函数中指定名称的参数赋值=======================最常用!===================================================以上三个用于指定给构造函数中哪个参数赋值value:给基本类型和String类型提供数据ref:用于引用ioc-bean配置的类型,常用于赋值时候无法直接赋值转化的类型的配置。优势:创建对象当然时候没有明显限制,可以直接使用默认构造函数弊端:不能保证每个值都一定注入-->

如果需要为一个配置类进行非基本数据类型或String类型的注入,一般有:1.待注入类为外来类,则这种情况,在xml中配置则利用ref来指定注入类的id;如果在注解配置中,则直接利用构造函数AutoWired注入即可;2.待注入类是自定义类,则这种情况,在xml中扫描包的情况下就如下列代码所示利用set+bean进行注入,如果是純注解配置则同样利用IOC的AutoWired进行注入。

<!--    配置自定义转换器1.配置org.springframework.context.support.ConversionServiceFactoryBean2.将自己写的类型转换器注入,在IOC中支持起来--><bean id="conversionServiceFactoryBean" class="org.springframework.context.support.ConversionServiceFactoryBean">
<!--         上面一种不能用,value只能给基本类型和String类型的数据进行注入,如果要引入其他类,用ref或set来注入外来类型或扫描的自定义类型-->
<!--        <property name="converters" value="com.nju.utils.convertor.StringToDateConvertor"></property>--><property name="converters"><set><bean class="com.nju.utils.convertor.StringToDateConvertor"></bean></set></property></bean>

 

  相关解决方案