1. Есть Spring Boot Application, он собрался. Запускаешь получившийся jar-ник. Он падает с Runtime Exception - не может внедрить зависимости: 2 кандидата на внедрение в какое-то место. Из-за чего такое может произойти? Как решить?
#
2. Есть класс-сервис. Внутри 2 метода. Оба public, @Transactional. Первый метод внутри обращается ко второму. Инжектим класс из другого класса и обращаемся к первому методу. Будет ли второй метод транзакционным? После. бираем транзакцию у первого метода. Делаем такое же обращение через первый метод. Через 10 минут демо, надо, чтобы второй метод стал транзакционным
#
3. Можем ли мы создать несколько синглтонов, которые будут имплемитировать один и тот же класс, но будут разные параметры?
#
4. Подключаю Spring Boot Application, делаю Maven parent SpringBoot и подключаю SpringBootStarter. Веб появляется?
#
5. От стартеров абстрагируемся. Хотим сделать Spring Boot приложение. Ставим @SpringBootApplication public static void main. Передаешь класс, где main. Добавляешь зависимости, стартеры и все начинает работать. От момента, как прописал зависимости и поставил аннотацию - что происходит? - Что значит идет конфигурирование приложения?
#
6. Как поведёт себя запущенный проект на Spring без spring-boot-starter-web?
#
7. Есть метод который помеченный @Transactional, в середине нужно сохранить промежуточный результат в отдельную таблицу даже при исключении
#
8. Есть контроллер Singletone. Он торчит наружу своим API. Мы этот контроллер autowire-им в сервис. Сервис Prototype. User 10 раз дергает контроллер. Сколько будет создано сервисов?
#
9. У нас есть библиотека. В ней главный интерфейс movable. У него метод move() что-то двигает. У нас есть имплементация movableImpl() этого метода. Скомпилировали, собрали war, выложили на Nexus. Другой разраб берет нашу библиотеку, использует autowired куда-то себе, у него все работает. Менеджер попросил что-то у нас переделат. Мы решили сделать movableImpl2(), там имплементация того же интерфейса movable, который autowire-ид тот разраб у себя. Какие будут проблемы?
#
10. Junior developer повесил @Transactional так, что транзакция не открывается. Как он это сделал?
#
11. Есть аннотация, уже написана. Когда разраб помечает свой метод этой аннотацией, происходит логирование. Как реализовать такой функционал?
#
12. Приложение использует библиотеку. Библиотека реализует интерфейс. Есть две реализации бинов, одна в самой библиотеке, вторая в нашем приложении. Мы инжектим интерфейс. Как ведет себя Spring?
#
13. Есть интерфейс, который реализуют несколько классов. Я пытаюсь внедрять этот интерфейс куда-нибудь как Bean. Как Spring поймет, какую реализацию выбрать?
#
14. Один сервис отправил сообщение, что нужно сохранить несколько сущностей. Нужно сохранить всё или ничего. Как бы сделал процесс отката?
#
15. Представим что у нас есть Транзакционный метод. В нем вначале через репозиторий делаем findOne, потом изменяем ее через save и кидаем повторный запрос findOne. Сколько запросов к БД будет выполнено?
#
16. Приложение работает несколько суток, принимает HTTP трафик. Есть ли возможность в Spring закинуть туда бин, не рестартуя приложение?
#
17. Spring приложение, прикручена БД. Есть требование, что нельзя хранить login, password в Application Properties в открытом виде. Они там хранятся в зашифрованном виде. Как решить проблему, чтобы Spring расшифровывал их? Токен для расшифровки хранится на локальной машине
#
18. Создаем бины котрые реализовывают временный контейнер Файл. Файл, что то сохраняет и что то достает. Если закроем приложение то файл останется. Как уничтожить бин, для грамотного использования ресурсов.
#
19. Как создать несколько DataSource в спринг-приложении и управлять ими?
#
20. Если у нас есть несколько DataSource, создаются в нашем приложении два бина одного и того же типа. Место для инжекта только одно. Как разрулить ситуацию?
#
21. Если создаем в бине обращение к ресурсу. Нужно корректно закрыть ресурс. Как это сделать?
#
22. Есть standalone провайдер авторизации. KeyClock к примеру. Как сервис провалидирует этот токен?
#
23. Если я поменяю Service на Component. Что-то поменяется в приложении?
#
24. Можно миксовать конфигурации? Часть сделать аннотациями, а часть XML?
#
25. Что если надо заинжектить интерфейс, а у меня две реализации в Context
#
26. Есть Singleton Bean. Есть Request HTTP запрос. Нам надо из запроса получить хедеры и залогировать. Как можно это заинжектить? Есть ли готовые решения у Spring?
#
27. Что будет если на каждый запрос будет создавать новый ApplicationContext?
#
28. Что будет если будет исключение в PostConstruct
#
29. Используем SpringBootApplication, а используемые Бины лежат в библиотеке. Будут ли они подтягиваться автоматически?
#
30. Как без LAZY мы можем сделать ленивую загрузку бина?
#
31. Есть проект. В проекте есть Kafka и БД. Указываем параметры подключения к БД. Если у нас не указаны переменные в Application Properties для БД, то нам ДатаСоурс создавать не надо. Если у нас не указаны параметры application properties то нам Бин поднимать не надо. Как тогда сделать?
#
32. Если ловим OptimisticLockException, что делаем?
#
33. Есть самописная аннотация. Есть метод, который реализует определенный функционал. Как сделать так, чтобы когда мы ставили нашу самописную аннотацию вызывался наш метод с прописанным функционалом.
#
34. Проблема управления распределённой транзакцией. Какие есть подходы к решению?
#
35. Пишем интеграционный тест, который протестирует endpont, обращение в Сервис и БД. Как на Spring написать интеграционный тест?
#
36. Есть стартер и Application. В стартере определен бин датасоурс, который инжектиться аппликейшином и аппликатион с ним работает. Потом сделали вторую версию Стартера и в эту версию нужно добавить еще один бин такого же типа, чтобы в одном месте кода использовался один бин, в другом другой бин. Важно, чтобы бины были одного типа. Вопросы: 1. Как можно реализовать, чтобы использовать два бина с одинаковым типом. 2. Приложение не должно заметить изменений и должно продолжить использовать первый бин.
#
37. Есть Java интерфейс, который имплементируют два класса. На каждой имплементации висит @Service. Это корректно?
#
38. Когда подключаешь стартер, он подтягивает все зависимости. Если мне нужен стартер, но одна зависимость в нем не нужна. А переписывать стартер не хочется, что делать?
#
39. Если заменить Configuration на Component бины не будут создаваться?
#
40. Есть большое приложение. Много классов, контроллеров, сервисных слоев. В большую часть этих слоев инжектится бин, созданный из какого-то библиотечного класса, который мы менять не можем. Этот бин везде используем, он создан через Java конфигурацию. Теперь нам надо создать еще один такой же бин, но с другими параметрами. Хотим новый бин использовать в новом сервисе. А в старых местах должен инжектиться старый бин. Как это развязать? Хотим иметь два Singleton
#
41. Есть наша инфраструктурная аннотация, которая логирует Rest контроллеры (@RestLogger). Мы ее везде вешаем, но иногда забываем. Можно ли сделать, чтобы при старте приложения Spring сам проверил, что на всех классах, помеченных @RestController есть @RestLogger? И, если где-то не висит, то деплой падает с понятной ошибкой
#
42. Подключаешь старый проект через зависимости к своему проекту. Надо, чтобы все бины из старого проекта попали в Spring context. Как это сделать?
#
43. Две транзакции хотят обновить одну и туже строку. Что будет происходить?
#
44. Если первая транзакция захватила объект для изменения и изменила его. Вторая транзакция на этом объекте отработает? Какие проблемы будут? Ситуация гонки за данными
#
45. Как настроить зависимости бинов для разных сред разработки? Например, нужно использовать две разные БД.
#
46. Как логировать бины при создании бинов? Если бинов больше сотни?
#
47. Почему дефолтным выбран Singleton? Кажется, что это не удобно, раз надо обращать внимание на что-то?
#
48. По всему проекту мы выбрасываем RuntimeExceptions и хотим в одном месте их ловить. Чем воспользоваться?
#
49. Каким инструментом можно гарантировать, чтобы scheduler работал только в master ноде? На уровне Spring приложения
#
50. Нормально ли в методе помеченном @Transactional кидать HTTP-запросы?
#
51. Мне нужно в программе, чтобы бин создавался при условии, что подключена определенная библиотека. Как это реализовать?
#
52. Ты подключаешь библиотеку и хочешь переопределить у этой библиотеки бин. Что для этого в библиотеке должно быть указано, чтобы ты смог это сделать? Как это возможно сделать?
#
53. Две транзакции хотят обновить одну и туже строку. Что будет происходить?
#
54. Есть 4 бина одного типа, мне нужно собрать их в одном месте. Как сделать?
#
55. У нас есть прокси. Он добавляет действие на все методы какого-то класса. Прокси должен логгировать все вызовы методов класса. Пусть в классе есть методы B, C. Оба публичные и помечены аннотацией, чтобы прокси их обрабатывал. Другой сервис вызывает метод B, а метод B вызывает метод C. Сколько в логах будет записей?
#
56. Есть сервис, в сервисе есть метод, который внутри себя вызывает метод репозитория. Над методом в сервисе я поставил @Transactional. И над методом в репозитории тоже поставил @Transactional. Вызвал метод сервиса, который внутри вызвал метод репозитория. Сколько транзакций откроется?
#