Вы можете использовать эту пользовательскую библиотеку (написанную с помощью Promise) для выполнения удаленного вызова.
function $http(apiConfig) {
return new Promise(function (resolve, reject) {
var client = new XMLHttpRequest();
client.open(apiConfig.method, apiConfig.url);
client.send();
client.onload = function () {
if (this.status >= 200 && this.status < 300) {
// Performs the function "resolve" when this.status is equal to 2xx.
// Your logic here.
resolve(this.response);
}
else {
// Performs the function "reject" when this.status is different than 2xx.
reject(this.statusText);
}
};
client.onerror = function () {
reject(this.statusText);
};
});
}
Пример простого использования:
$http({
method: 'get',
url: 'google.com'
}).then(function(response) {
console.log(response);
}, function(error) {
console.log(error)
});
Когда вы создаете объект по-новому, autowire \ inject не работает ...
См. ссылку и эту ссылку для некоторых Обходной путь.
В любом случае, если вы введете регистратор, я предлагаю вам этот мой ответ на другую тему.
Используйте весенний фрейм Единичный тест вместо теста JUnit для инъекции вашего весеннего боба.
Может быть, это поможет вам.
В контексте вашего приложения вы должны сделать ссылку на свой Logger:
<context:component-scan base-package="com.platform"/>
<bean id="asyncLoggingService" class="com.platform.services.AsyncLoggingServiceImplementation" scope="prototype"/>
<bean id="ourLogger" class="com.platform.utils.OurLogger"/>
Затем вы должны ввести его в свою службу:
@Service
public class AsyncAccountServiceImplementation implements AsyncAccountService
{
private static final String GATEWAY_IP_BLOCK = "1";
@Autowired
private OurLogger logger;
}
Если вы используете AspectJ, вы можете использовать @Configurable
:
@Configurable
public class OurLogger {
..
}
См.: Использование AspectJ для зависимостей встраивает объекты домена с помощью Spring
Просто хочу добавить свои 2 цента.
Однажды я столкнулся с той же проблемой, когда я не совсем привык к the life in the IoC world
. Поле @Autowired
одного из моих bean-компонентов является нулевым во время выполнения.
Основная причина заключается в том, что вместо использования автоматически созданного компонента, поддерживаемого контейнером Spring IoC (поле @Autowired
indeed
] правильно введенный), я newing
мой собственный экземпляр этого компонента и его использование. Конечно, это поле @Autowired
равно нулю, потому что Spring не имеет возможности его ввести.