Forwarded from Димкина Визитка
Spring Boot: автоконфигурация и REST API ⚡ (Часть 2)
Привет, коллеги! 👋
Вторая часть про Spring. Сегодня — Spring Boot и создание REST API.
Что такое Spring Boot?
Spring Boot упрощает настройку Spring-приложений:
- Автоконфигурация
- Встроенные серверы (Tomcat, Jetty)
- Starter-зависимости
- Готовые production-фичи
Создание приложения
Структура проекта:
Основной класс:
Создание REST контроллера
Spring Boot Starters
Конфигурация через application.yml
Spring Boot Actuator
В третьей части разберем Spring Data JPA, транзакции и тестирование!
Какой ваш любимый Spring Boot starter? 👇
#springboot #restapi #java #spring
Привет, коллеги! 👋
Вторая часть про Spring. Сегодня — Spring Boot и создание REST API.
Что такое Spring Boot?
Spring Boot упрощает настройку Spring-приложений:
- Автоконфигурация
- Встроенные серверы (Tomcat, Jetty)
- Starter-зависимости
- Готовые production-фичи
Создание приложения
Структура проекта:
src/main/java/
└── com/example/demo/
├── DemoApplication.java
├── controller/
├── service/
└── repository/
Основной класс:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Создание REST контроллера
@RestController
@RequestMapping("/api/users")
public class UserController {
private final UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping
public List<User> getAllUsers() {
return userService.findAll();
}
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.findById(id);
}
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public User createUser(@RequestBody User user) {
return userService.create(user);
}
}
Spring Boot Starters
<!-- В pom.xml -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
Конфигурация через application.yml
# application.yml
server:
port: 8081
spring:
datasource:
url: jdbc:postgresql://localhost:5432/mydb
username: user
password: pass
jpa:
hibernate:
ddl-auto: update
show-sql: true
Spring Boot Actuator
# Мониторинг приложения
management:
endpoints:
web:
exposure:
include: health,info,metrics
В третьей части разберем Spring Data JPA, транзакции и тестирование!
Какой ваш любимый Spring Boot starter? 👇
#springboot #restapi #java #spring
❤2🔥1🤝1
#Собес #java #microservices #monolith
🤔 Middle Java Backend-разработчик в компанию IT-smart.
Техническое собеседование. Осень 2024. Просил 250к+. Опыт в резюме 3 года. Сначала были вопросы по опыту работы, воркфлоу, гитфлоу
💬 Вопросы:
- Разница между Spring и Spring Boot
- Что такое Bean?
- Что такое распределённый кэш?
- Когда использовать локальный кэш, а когда распределённый?
- Когда нужно использовать кэширование?
👉 Все вопросы из этого собеседования (23)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Java Backend-разработчик в компанию IT-smart.
Техническое собеседование. Осень 2024. Просил 250к+. Опыт в резюме 3 года. Сначала были вопросы по опыту работы, воркфлоу, гитфлоу
💬 Вопросы:
- Разница между Spring и Spring Boot
- Что такое Bean?
- Что такое распределённый кэш?
- Когда использовать локальный кэш, а когда распределённый?
- Когда нужно использовать кэширование?
👉 Все вопросы из этого собеседования (23)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
#Собес #java #acid #transaction
🤔 Middle Java Backend developer в компанию Сбер
Техническое собеседование. Лето 2025. Вилка: 240к+. Опыт в резюме: 3.9 года. Проект: разработка высоконагруженных систем для Сбербанк Онлайн
💬 Вопросы:
- Какой жизненный цикл Spring Beans?
- Для чего используются BeanPostProcessor и BeanFactoryPostProcessor?
- Как достать бин из ApplicationContext?
- Стандартные способы управления потоками (ExecutorService, Future)
- Зачем нужен volatile? Как он обеспечивает видимость изменений?
👉 Все вопросы из этого собеседования (25)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Java Backend developer в компанию Сбер
Техническое собеседование. Лето 2025. Вилка: 240к+. Опыт в резюме: 3.9 года. Проект: разработка высоконагруженных систем для Сбербанк Онлайн
💬 Вопросы:
- Какой жизненный цикл Spring Beans?
- Для чего используются BeanPostProcessor и BeanFactoryPostProcessor?
- Как достать бин из ApplicationContext?
- Стандартные способы управления потоками (ExecutorService, Future)
- Зачем нужен volatile? Как он обеспечивает видимость изменений?
👉 Все вопросы из этого собеседования (25)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
#Собес #jvm #java #kotlin
🤔 Middle Java Backend разработчик в Сбер
Техническое собеседование. Лето 2025. Опыт в резюме: 4.2. года. Вилка: 250-280к. Был лайвкодинг, задачи на SQL.
💬 Вопросы:
- Как реализовать оптимистичную и пессимистичную блокировки в Spring?
- Как работает аннотация @Transactional в Spring?
- Как выявлять и устранять утечки памяти в Java-приложениях?
- Какие инструменты вы используете для мониторинга памяти и производительности?
- Какие преимущества Kotlin перед Java вы знаете?
👉 Все вопросы из этого собеседования (21)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Java Backend разработчик в Сбер
Техническое собеседование. Лето 2025. Опыт в резюме: 4.2. года. Вилка: 250-280к. Был лайвкодинг, задачи на SQL.
💬 Вопросы:
- Как реализовать оптимистичную и пессимистичную блокировки в Spring?
- Как работает аннотация @Transactional в Spring?
- Как выявлять и устранять утечки памяти в Java-приложениях?
- Какие инструменты вы используете для мониторинга памяти и производительности?
- Какие преимущества Kotlin перед Java вы знаете?
👉 Все вопросы из этого собеседования (21)
📣 Хочешь больше собесов?
Подпишись на наш главный канал