Spring自动装配模式五:autodetect的解析

    技术2022-05-18  13

    Spring自动装配模式五:autodetect的解析

    通过bean类的自省机制(introspection)来决定是使用constructor还是byType方式进行自动装配。如果发现默认的构造器,那么将使用byType方式。

        <bean id="homeAddressServiceImpl" class="cn.csdn.service.HomeAddressServiceImpl"

           scope="singleton">

           <property name="address">

               <value>北京海淀上地软件园</value>

           </property>

        </bean>

    <bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl"

           scope="singleton" autowire="autodetect" />

    java代码有两种

    一是带有默认构造器的采用getType中的set方法如果在构造器中有一个实例对象,但是在配置文件中并没有与之对应的bean的实例:那么在采用

        autowire="constructor"自动装载时会出现异常信息

     

    package cn.csdn.service;

     

    public class EmpServiceImpl {

        /**有参数的构造器*/

        public EmpServiceImpl(AddressServiceImpl companyAddress) {

           super();

           this.companyAddress = companyAddress;

        }

     

     

        /**公司地址*/

        private AddressServiceImpl companyAddress;

       

       

        public void setCompanyAddress(AddressServiceImpl companyAddress){

           this.companyAddress=companyAddress;

        }

     

    }

     

    一是没有默认构造器的采用constructor方法

    package cn.csdn.service;

     

    public class EmpServiceImpl {

       

        /**公司地址*/

        private AddressServiceImpl companyAddress;

       

       

        public void setCompanyAddress(AddressServiceImpl companyAddress){

           this.companyAddress=companyAddress;

        }

     

    }

     


    最新回复(0)