0
  <context:annotation-config />

上記の行が ApplicationContext.xml ファイルに追加されている場合、Test.java は実行されていませんが、これを追加すると機能しますが、チュートリアル では、両方のメソッドが機能して、上記のコード行の問題を解決できると言っています。

    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

従業員.java

    package com.stp.beans;

    import org.springframework.beans.factory.annotation.Autowired;

    public class Employee {
        private Address empaddress;

        public Address getEmpaddress() {
            return empaddress;
        }
        @Autowired
        public void setEmpaddress(Address empaddress) {
            this.empaddress = empaddress;
        }
    }

アドレス.java

    package com.stp.beans;

    public class Address {
        private String address;

        public String getAddress() {
            return address;
        }

        public void setAddress(String address) {
            this.address = address;
        }
    }

ApplicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
    <bean id ="empbean" class="com.stp.beans.Employee"></bean>
    <bean id ="adrbean" class="com.stp.beans.Address"></bean>
    </beans>

テスト.java

    package com.stp.test;

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import com.stp.beans.Employee;

    public class Test {
        public static void main(String[] args) {
            ApplicationContext context = new ClassPathXmlApplicationContext("/com/stp/cfgs/ApplicationContext.xml");
            Employee emp = (Employee) context.getBean("empbean");
            System.out.println(emp.getEmpaddress());
        }
    }
4

1 に答える 1