У меня есть простой класс и вы хотите использовать @Autowired для запуска метода из объекта numberHandler. Однако объект имеет значение null. Есть идеи?Как @autowire реализация класса из файла jar?
@Component
public class Startup implements UncaughtExceptionHandler {
@Autowired
private MyHandler myHandler;
public static void main(String[] args) {
startup = new Startup();
startup(args);
}
public static void startup(String[] args) {
startup = new Startup();
}
private void start() {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
myHandler.run(); //NULL
}
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"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
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
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
<context:annotation-config />
<context:component-scan base-package="com.my.lookup"/>
и класс реализации:
package com.my.lookup;
@Component
public class MyHandler implements Runnable {
private static Logger LOGGER = LoggerFactory.getLogger(MyHandler.class);
@Override
public void run() {
// do something
}
ли я четко определить applicationContext.xml в главном классе с ClassPathXmlApplicationContext() или есть способ для Spring автоматически распознать его в моем классепате час?
Это сработало. Благодаря! Что касается второго вопроса: Должен ли я явно указать applicationContext.xml в основном классе с классом ClassPathXmlApplicationContext() или есть ли способ Spring автоматически распознать его в моем пути к классам? – luksmir
Вам нужно инициализировать контекст приложения, как и вы, нет автоматического способа в простом Java-приложении. Пожалуйста, отметьте ответ как принятый, так как он решил вашу проблему. – hyness
Спасибо за ответ. – luksmir