![名师讲坛:Spring实战开发(Redis+SpringDataJPA+SpringMVC+SpringSecurity)](https://wfqqreader-1252317822.image.myqcloud.com/cover/156/29977156/b_29977156.jpg)
上QQ阅读APP看书,第一时间看更新
3.4 注入构造方法
进行Bean定义的过程中,默认调用类中的无参构造方法实例化Bean对象。考虑到用户使用方便,Spring中也提供了有参构造的Bean配置,此时需要通过配置传递相应配置参数。
1.【mldnspring-base项目】定义Dept程序类,取消无参构造,并追加有参构造。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer644.jpg?sign=1739480672-DjlVegxHBfmrPZ1WsVft3tp1q9haXEzh-0-317625380f5abd63efd9b1f42e83bdd4)
2.【mldnspring-base项目】修改spring-base.xml配置文件,追加构造方法调用。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer645.jpg?sign=1739480672-6aWpWPP1fg9RdozMNzvYoOK8u2px7pqX-0-e0766e562557eca46d7b9660bdf9ecf9)
本程序在定义构造方法时,利用index配置了要设置的构造方法的参数顺序,这样会自动将设置的内容按照顺序传递到构造方法之中,以实现有参构造对象实例化。
提示:可以采用配置顺序替代index。
在使用<constructor-arg>元素定义构造方法参数顺序时,也可以直接依靠配置顺序实现构造方法参数的配置。
范例:省略index属性。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer646.jpg?sign=1739480672-IarRhY7JjFd9EYI6iXKfJCFP8i1xA93y-0-ba184b5d89bc376cc28a351b1335ce74)
本程序取消了index属性,因此会按照配置顺序进行构造方法参数传递。
3.【mldnspring-base项目】Spring可根据顺序进行构造方法的参数匹配,但很多开发者认为直接设置具体的参数名称会比较方便。要想实现这一目的,需要修改Dept类的构造方法。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer647.jpg?sign=1739480672-kUqS0kog9B47LoZQsIUBpdlVszFsl450-0-c308b90019eda3c491f003f025b8fd9e)
本程序使用了@ConstructorProperties注解并按照顺序定义了构造方法中的参数名称。这样,在配置文件中就可以通过注解中的参数名称进行内容设置。
4.【mldnspring-base项目】修改spring-base.xml配置文件,利用参数名称传递构造方法参数。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer648.jpg?sign=1739480672-aKmcVEfBcaTLPCbB4YTuYkUCPCMsLDsZ-0-53c402a4e6f0143a7614bc4d3af9b9ba)
此时,可以通过配置的参数名称实现构造方法的参数注入。