Вы должны либо определить ваши bean-компоненты в xml, либо аннотировать их, а не оба (хотя бы для того, чтобы избежать ошибок, подобных той, что вы получаете).
Проблема здесь в том, что вы не используете автопроводку аргументов конструкторапоэтому весна не знает, что делать с вашим контроллером.Он знает, что должен создать bean-компонент (@Controller
аннотация), но не знает как (ни по умолчанию, ни с автоматическим соединением конструктора).
Вы можете попробовать сделать что-то вроде:
@Controller
public class CacheHandler {
private final CustomGxSessionIdCacheImpl gxSessionIdCache;
@Autowired
public CacheHandler(CustomGxSessionIdCacheImpl gxSessionIdCache) {
this.gxSessionIdCache = gxSessionIdCache;
}
и затем в xml:
<bean id="gxSessionIdCache"
factory-bean="PcrfSimulator"
factory-method="getGxSessionIdCache"/>
Таким образом, он будет автоматически связывать параметры конструктора.
Другой вариант - просто создать конструктор по умолчанию и свойство autowire gxSessionIdCache
.