Содержание
- 3. Что получим на выходе?
- 4. Где взять JDK? ХТО ТАКОЙ ЭТОТ ВАШ JDK?
- 5. JavaBean
- 6. Bean scope
- 7. Bean lifecycle
- 8. Bean lifecycle
- 9. Component Scan
- 10. Component Scan
- 11. Component vs Service vs Repository
- 12. @Configuration
- 13. Qualifier vs Primary
- 14. Qualifier
- 15. Conditional
- 16. @Autowired
- 17. Constructor injection
- 18. Circular Reference
- 19. International Students and Scholars Rock
- 21. Пример контроллера @PathVariable
- 22. Пример контроллера @RequestBody Плохой пример!!! Не передавайте @Entity в @RequestBody контроллера. Вместо этого следует использовать DTO,
- 23. Пример контроллера @RequestParam В запросе @RequestParam c типом List будут выглядеть, как ids[]=1,2,3,4,5 @RequestParam могут не
- 24. Пример контроллера на скачивание файла
- 25. Скачивание файлов при помощи контроллера Для того чтобы вернуть файл из контроллера не обязательно работать с
- 26. Пример контроллера на загрузку файла В дальнейшем из photo можно извлечь информацию при помощи photo.getInputStream()
- 27. НЕ ДЕЛАЙТЕ ТАК
- 28. НЕ ДЕЛАЙТЕ ТАК
- 29. НЕ ДЕЛАЙТЕ ТАК
- 30. Используйте пагинацию на findAll
- 31. Controller Контроллер возвращает путь к шаблону Шаблон рендерится при помощи Thymeleaf Данные в шаблон попадают через
- 32. Valid @Valid UserAccount userAccount;
- 33. Validated @Validated(BasicInfo.class) UserAccount userAccount;
- 35. Filter
- 36. ExceptionHandler Любой выкинутый за время работы приложения Exception будет перехвачен ExceptionHandler и сформирует ответ, который необходимо
- 37. Spring Data JPA
- 38. Конфигурируем Datasource jwt.secret – собственная переменная, которая была введена для валидации JWT Важно чтобы была зависимость
- 39. @Entity
- 40. @Entity
- 41. @Entity
- 42. @Entity
- 43. @Entity
- 44. N+1 проблема
- 45. N+1 как должно быть
- 46. N+1 проблема
- 47. N+1 как должно быть
- 48. N+1 как решить – BatchSize
- 49. N+1 как решить – SUBSELECT
- 50. N+1 как решить – JOIN
- 51. FetchType
- 54. Entity vs DTO
- 55. Validation @NotNull, @NotEmpty, @NotBlank, @Null @Email @Min, @Max, @Length @Size @Future, @Past @Negative, @NegativeOrZero, @Positive, @PositiveOrZero
- 56. JpaRepository
- 57. JpaRepository При помощи рефлексии `JpaRepository` может составлять относительно простые запросы. Стандартные методы: .save() .findById() .findAll() .delete()
- 58. JpaRepository Более сложные запросы следует составлять при помощи @Query @Query бывает native и по умолчанию. native=true
- 59. JpaRepository @Query можно совместить вместе с @Modifying
- 60. @Transactional @Transactional заставляет метод выполняться в рамках одной транзакции. Брошенное исключение откатит транзакцию.
- 61. @Transactional https://sysout.ru/transaction-propagation/
- 62. @Transactional
- 63. @Transactional
- 64. @Transactional
- 65. @Transactional
- 66. @Transactional
- 67. @Transactional
- 68. @Transactional
- 69. @Transactional
- 70. @Propagation Propagation отвечает на вопросы: что если два метода аннотированы @Transactional, и один вызывается из другого?
- 71. @Isolation
- 72. @Isolation
- 73. @Isolation
- 74. @Isolation
- 75. Liquibase – sql файл
- 76. Liquibase – changelog-v0_1_0.yaml
- 77. Liquibase – changelog-v1_0_0.yaml
- 78. Liquibase – db.changelog-master.yaml
- 79. Liquibase – application.yaml
- 80. Testcontainers
- 81. Testcontainers – base test
- 82. Testcontainers – junit-jupiter
- 83. junit-Jupiter – нет миграций
- 84. Postgres in docker
- 85. Dockerfile
- 87. Скачать презентацию