У меня бин области действия определен следующим образом:
<!-- this is where the serviceImpl bean is defined -->
<import resource="classpath:META-INF/*-core-context.xml"/>
<bean id="myBean" class="com.company.Bean">
<property name="service" ref="serviceImpl"/>
</bean>
Теперь внутри бина я определил значение по умолчанию для внедренного сервиса следующим образом:
public class Bean {
private Service service = new NullService();
public void setService(Service service) {
this.service = service;
}
}
Что яЯ хочу сделать это, предоставив возможность опционально внедрить службу, и если вы решите не Bean
, будет использоваться реализация NullService
, которая просто ничего не делает, никак не влияя на логику компонента.
Проблема в том, что по какой-то причине serviceImpl
никогда не впрыскивается, и я всегда получаю реализацию NullService
.
Так есть какая-то пружинная настройка или функция, которая препятствует его впрыскиванию?Или у вас есть другие идеи о том, почему это может произойти?
Дополнительная информация
Это установщик, который пружина использует для ввода службы:
public void setPermissionsService(PermissionService permissionsService) {
this.permissionsService = permissionsService;
System.out.println("setting permissions service to: " + permissionsService.getClass().getName());
if (this.permissionsService instanceof NoopPermissionsServiceImpl) {
System.out.println("NULL IMPLEMENTATION");
}
else if (this.permissionsService instanceof PermissionServiceImpl) {
System.out.println("CORRECT IMPLEMENTATION");
}
else {
System.out.println("WHAT ?!?!");
}
}
Он печатает "WHAT ?!?!"
.
Так получается, что пружина устанавливает его в динамический прокси $Proxy859
.Есть ли способ увидеть класс прокси-прокси?