为什么注入的类中的字段变为空-JavaFX with Spring

时间:2019-08-19 16:04:28

标签: java spring javafx dependency-injection gluon

当我尝试从注入的对象访问字段时,出现了一些空指针异常。我将展示一个简单的例子。我正在使用lokbok批注@Getter@Setter

我有一堂简单的课。

public class MyClass {

    /*
     * Field
     */
    private @Getter @Setter String myName;

    public MyClass(){

    }
}

然后我上另一堂课

public class AnotherClass {

        /*
         * Field
         */
        private MyClass myClass;

        public AnotherClass(){
             ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
             myClass = context.getBean("myClass", MyClass.class);
             ((ConfigurableApplicationContext) context).close();

             myClass.setMyName("Hello");
        }
    }

如果我从第三类访问字段myName,就像这样。

public class ThirdClass {

        /*
         * Field
         */
        private MyClass myClass;

        public ThirdClass(){
             ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
             myClass = context.getBean("myClass", MyClass.class);
             ((ConfigurableApplicationContext) context).close();

             System.out.println(myClass.getMyName());
        }
    }

它将打印出null作为输出。我创建了这样的Beans.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"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- Create my class -->
    <bean id="myClass" class="MyClass"></bean>


</beans>

问题:

它会表现得那样吗?

如果我不想拥有null,我错过了什么吗?

正在使用的软件:

  • JavaFX 8
  • Java 8
  • 胶子-点燃弹簧1.0.2
  • 龙目岛1.18.8

0 个答案:

没有答案