2015-04-16 2 views
1

У меня есть качели класс под названием App.java, там у меня есть это:переменное обслуживание нуля при доступе из основного класса

private EmployeeService employeeService; 

public void setEmployeeService(EmployeeService employeeService) { 
    this.employeeService = employeeService; 
} 

и в моем applicationContext.xml, у меня есть:

<bean id="employeeDao" class="com.myapp.dao.EmployeeDaoImpl"> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 

<bean id="employeeService" class="com.myapp.service.EmployeeServiceImpl"> 
    <property name="employeeDao" ref="employeeDao" /> 
</bean> 

<bean id="app" class="com.myapp.swing.App"> 
    <property name="employeeService" ref="employeeService" /> 
</bean> 

Когда я запустил App.java, я получаю сообщение об ошибке, которое employeeService равно null. Почему это так? Если я назначу bean-сервисный сервис непосредственно из класса:

ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("/spring/applicationContext.xml"); 
EmployeeService employeeService = (EmployeeService) context.getBean("employeeService"); 
employeeService.validateEmployeeNo(1234); 
context.close(); 

... 

Я могу успешно запустить его. Является ли весенняя проводка employeeService в App.java, когда я ввожу ее из applicationContext.xml?

+0

вы видите какие-либо ошибки? возможно, applicationContext.xml даже не читается/не анализируется. – Nirmal

+0

Ваш файл applicationContext.xml выглядит правильно. Вы уверены, что весна инициализируется при нормальной работе вашего приложения? –

+0

Я предполагаю, что, вызвав employeeService из класса App, он также вызвал бы employeeDao, который вызывает dataSource, и у меня проблем не возникает. – superigno

ответ

0

Если ваш класс App создается контейнером Spring, вы получите нулевое значение для любой службы, к которой вы пытаетесь получить доступ. Как вы инициализируете свой класс App?

App myApp = new App(); 

или

App myApp = (App) context.getBean("app"); 
+0

Я не. На самом деле это мой основной класс swing, который имеет общедоступный статический недействительный основной метод. Может быть, это и есть причина? На самом деле это мой основной класс swing, который имеет общедоступный статический недействительный основной метод. Это может быть причина? – superigno