Skip to content

Commit 9405683

Browse files
authored
Update spring.md
1 parent 4e50ce0 commit 9405683

1 file changed

Lines changed: 69 additions & 2 deletions

File tree

spring.md

Lines changed: 69 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -696,14 +696,83 @@ __Класс помеченный аннотацией `@SpringBootApplication`
696696

697697
так же тут конфигурируются Security, Spring Data JPA, Hibernate, БД и т.д.
698698

699+
Или так, например:
699700

701+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/ed1dcdf3-a0fe-4c46-8d8e-d11d16f5ccac)
700702

701703

702704

703705

704706

705707

706708

709+
## Spring Security
710+
711+
712+
713+
714+
715+
## Spring REST
716+
717+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/000dd50c-f0d8-4bbb-9412-7f13a5ab3a87)
718+
719+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/9862d01e-108d-4965-8f37-a76776f2033d)
720+
721+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/26a46ffd-b613-4f59-a963-4fe89737288d)
722+
723+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/7facc92a-433b-40f9-9a16-4283ddcfc56a)
724+
725+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/781d89ac-e90c-4c83-8506-325e6c5ea294)
726+
727+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/86c70134-e416-4b7f-a9ec-c05328801765)
728+
729+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/1c3c029e-f9fc-410e-a744-0e5c7f0004c6)
730+
731+
В JSON'е данные в виде пар ключ-значение. Мы не можем напрямую использовать JSON в нашем Java приложении, потому что это строка с ключами и значениями, в JavaScript мы можем использовать его напрямую, потому что JSON пришел из языка JavaScript, но в Java мы не можем обратиться напрямую к ключу и получить знаечние, но мы можем JSON перевести в Java объект: ключ в JSON - это поле ы Java объекте. Для того что бы конвертировать JSON в Java объекты и наоборот мы используем библиотеку __Jackson__.
732+
733+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/380f4bbb-0c7d-4b45-856e-0c703bfeeee6)
734+
735+
Для всех полей Java класса должны быть сеттеры и геттеры, потому что Jackson работает именно с ними.
736+
737+
`RestTemplate` - класс (из библиотеки Spring Web) для запросов к стороннему REST API сервису. У этого класса есть методы соответствующие каждому http методу : `getForObject()`, `postForObject()`, `putForObject()` и т.д.
738+
`HttpHeaders` - класс из библиотеки Spring для передачи заголовков.
739+
740+
Подключимся к переводчику Яндекса, и будем переводить текст, введенный пользователем в консоль.
741+
742+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/41edca8c-d802-46bf-bf23-ee6e35b891f7)
743+
744+
Ответ:
745+
746+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/a194137f-5077-4d37-9eb9-3fbea78389fd)
747+
748+
`ObjectMapper`- класс, с чьей помощью мы можем распарсить любую строчку JSON.
749+
`JsonNode` - JSON, который уже был распаршен.
750+
Яндекс нам вернул массив из переводов под названием `translations`.
751+
Что бы получить только перевод нашего текста, а не весь JSON, получим первый элемент в этом массиве и в этом объекте получаем ключ - "text".
752+
753+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/594cb818-1f32-4f59-9a7d-0a3d08e77f7d)
754+
755+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/09424ab9-9730-47be-baed-7f08b5efec9d)
756+
757+
758+
Обычно структура JSON'а обговаривается, которая будет передаваться и приходить, и она всегда одна, и она обычно не меняется. Обмен JSON'ами происходит много раз и что бы не парсить каждый раз через `ObjectMapper`, можно создать Java класс и Jackson будет автоматически JSON в объект этого Java класса.
759+
760+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/9eddf3ce-d8ac-4c1f-9960-d07e1f9f373c)
761+
762+
Класс для каждогоэлемента массива `translations`: ![image](https://github.com/Slimercorp/java-interview/assets/116163780/fdd223f0-0d1c-4ed5-81df-ceb4a8ece626)
763+
764+
765+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/3f61fe03-6118-4467-bc90-ae5f90da8396)
766+
767+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/9477fc43-66d2-422c-94d0-814c4ac9c701)
768+
769+
И теперь объект, который вернется от Яндекса мы помещаем не в String, а в объект нашего класса `YandexResponse`.
770+
771+
![image](https://github.com/Slimercorp/java-interview/assets/116163780/c91a5a57-2e6d-4334-9e87-55f62dce0fa2)
772+
773+
774+
775+
707776

708777

709778

@@ -715,9 +784,7 @@ __Класс помеченный аннотацией `@SpringBootApplication`
715784

716785

717786

718-
## Spring Security
719787

720-
## Spring REST
721788

722789
## JWT
723790

0 commit comments

Comments
 (0)