Ответ
В проектах на Spring Boot использовался следующий стек:
- Spring Boot Core — автоконфигурация, embedded-серверы.
- Spring MVC — для построения REST API.
- Spring Data JPA — абстракция для работы с реляционными БД.
- Spring Security — аутентификация и авторизация.
- Spring Cloud (для микросервисной архитектуры) — Service Discovery (Eureka), Client-Side Load Balancing (Ribbon), Declarative REST Client (Feign).
Пример REST-контроллера (Spring MVC):
@RestController
@RequestMapping("/api/users")
public class UserController {
@GetMapping("/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
// ... логика
}
}
Пример репозитория (Spring Data JPA):
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email); // Query derivation from method name
}
Пример базовой конфигурации безопасности (Spring Security):
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeHttpRequests(auth -> auth
.requestMatchers("/api/public/**").permitAll()
.anyRequest().authenticated()
);
return http.build();
}
}