Проблема с Autowired - spring. Возвращает null

268
17 мая 2017, 06:16

Со спрингом не дружу, только начинию изучать. Не могу понять, почему не хочет автоваридся PersistenceFacade. Подскажите, пожалуйста, в чем проблема. Уже много времени убил, чтобы разобраться. В спринг-контексте прописаны только бины для dataSourse - подключение к БД.

Вот тут фасад возвращает null.

@Component("gridClient")
public class ClientGrid extends CustomComponent {
@Autowired
PersistenceFacade facade;
VerticalLayout verticalLayout;
Grid<Client> grid;
public ClientGrid() {
    verticalLayout = new VerticalLayout();
    grid = new Grid<>();
    System.out.println("Facade: " + facade);
    setSettings();
    initGrid();
}

Тут, вроде как, инстанциирую ClientGrid.

heme("valo")
@SpringUI(path = "")
public class MainPage extends UI {
@Autowired
ClientGrid clientGrid;
@Override
protected void init(VaadinRequest vaadinRequest) {
    VerticalLayout layoutMain = new VerticalLayout();
    setContent(layoutMain);
    WrapperMenu menu = new WrapperMenu();
    System.out.println("CLIENTGRID: " + clientGrid);
    layoutMain.addComponents(menu, clientGrid);
  }
}

Ну и сам PersistenceFacade. Вроде пометил его, как бин.

@Repository("persistenceFacade")
public class PersistenceFacade implements Facade {
    @Autowired
    private PersistenceManager manager;
    @Autowired
    private ConverterFactory converter;
Answer 1

Если установлена такая запись

@Autowired
PersistenceFacade facade;

то Spring будет искать бин с id "facade", так как не установлено другого. А сам бин объявлен так @Repository("persistenceFacade"), что означает, что у фасада id "persistenceFacade".

Варианты:

  1. Изменить название поля с facade на persistenceFacade
  2. Добавить полю аннотацию @Qualifier("persistenceFacade")
Answer 2

Попробуйте обойтись только @Repository , без присваивания имени.

READ ALSO
Условие для проверки номера телефона

Условие для проверки номера телефона

Добрый день, пытаюсь импортнуть в базу телефонные номера, но столкнулся с такой проблемой что некоторые телефоны начинаются с 89xx а нужно...

345
Как произвести мат. вычисление строки &ldquo;10+2&rdquo;

Как произвести мат. вычисление строки “10+2”

Делаю калькулятор, хочу что бы при нажатии клавиши = из текстового поля JTextarea считалась строка например 10+2 и затем производилось матвычисление

319
Как правильно использовать findViewById

Как правильно использовать findViewById

У меня примерно следующая иерархия id:

381