Note-Taking / / 2024. 9. 24. 23:30

Spring Framework의 주요 메서드와 기능 정리

1. BeanFactory 및 ApplicationContext 메서드

 

이 두 인터페이스는 스프링의 IoC 컨테이너로, 빈(Bean)의 라이프사이클을 관리해.

 

getBean(String name) : 이름으로 빈을 조회.

getBean(Class<T> requiredType) : 타입으로 빈을 조회.

containsBean(String name) : 빈이 컨테이너에 존재하는지 확인.

getAliases(String name) : 특정 빈에 대한 별칭(alias)을 반환.

 

2. RestTemplate 메서드

 

RestTemplate은 Spring에서 HTTP 요청을 보내고 응답을 처리하는 데 사용돼.

 

getForObject(String url, Class<T> responseType) : HTTP GET 요청을 보내고 결과를 객체로 반환.

postForObject(String url, Object request, Class<T> responseType) : HTTP POST 요청을 보내고 결과를 객체로 반환.

put(String url, Object request) : HTTP PUT 요청을 보냄.

delete(String url) : HTTP DELETE 요청을 보냄.

 

3. JdbcTemplate 메서드

 

JdbcTemplate은 데이터베이스에 대한 SQL 질의를 간편하게 처리해줘.

 

query(String sql, RowMapper<T> rowMapper) : SQL 쿼리를 실행하고 결과를 매핑.

update(String sql, Object... args) : SQL 업데이트 쿼리를 실행.

execute(String sql) : SQL 구문을 실행(DDL과 같은 구문 처리).

queryForObject(String sql, Class<T> requiredType, Object... args) : 단일 결과 값을 반환하는 쿼리 실행.

 

4. TransactionTemplate 메서드

 

스프링에서 트랜잭션을 관리하는 메서드.

 

execute(TransactionCallback<T> action) : 트랜잭션 내에서 작업을 수행하고 결과를 반환.

 

5. ModelAndView 클래스 메서드

 

Spring MVC에서 ViewModel 데이터를 전달할 때 사용하는 메서드.

 

addObject(String attributeName, Object attributeValue) : 모델에 데이터를 추가.

setViewName(String viewName) : 보여줄 뷰의 이름을 설정.

getModel() : 모델 데이터를 반환.

 

6. Controller 메서드

 

Spring MVC에서 컨트롤러는 HTTP 요청을 처리하고, 비즈니스 로직을 실행하며, 결과를 반환해.

 

@RequestMapping : 요청 URL을 컨트롤러 메서드와 매핑.

@GetMapping : HTTP GET 요청을 처리하는 메서드.

@PostMapping : HTTP POST 요청을 처리하는 메서드.

@PutMapping : HTTP PUT 요청을 처리하는 메서드.

@DeleteMapping : HTTP DELETE 요청을 처리하는 메서드.

 

7. AOP 관련 메서드 (Aspect-Oriented Programming)

 

AOP는 공통된 관심사를 모듈화하여 코드 중복을 줄이고, 로깅, 트랜잭션 관리 등을 쉽게 할 수 있어.

 

@Before : 메서드 실행 전에 동작을 실행.

@After : 메서드 실행 후에 동작을 실행.

@Around : 메서드 실행 전후에 동작을 실행.

 

8. AnnotationConfigApplicationContext 메서드

 

자바 기반 설정을 사용하는 ApplicationContext.

 

register(Class<?>... annotatedClasses) : 애노테이션으로 설정된 클래스 등록.

refresh() : 컨텍스트 초기화.

 

9. Validator 인터페이스 메서드

 

Spring에서 입력 데이터 유효성 검사를 할 때 사용되는 메서드들.

 

supports(Class<?> clazz) : 검증할 객체의 타입을 지원하는지 확인.

validate(Object target, Errors errors) : 객체의 유효성을 검사하고 에러를 추가.

 

10. Spring Data JPA 메서드

 

Spring Data JPA는 데이터베이스 연동을 쉽게 해주는 모듈로, 주로 Repository 인터페이스를 활용해 CRUD 작업을 수행할 수 있어. 이때, 주요 메서드들은 다음과 같아:

 

save(S entity) : 엔티티를 저장하거나 업데이트.

findById(ID id) : 주어진 ID로 엔티티를 조회.

findAll() : 모든 엔티티를 리스트로 반환.

delete(T entity) : 엔티티를 삭제.

findByName(String name) : 이름을 기준으로 엔티티를 조회하는 쿼리 메서드.

 

또한 페이징정렬 기능을 제공하는 메서드도 있어:

 

findAll(Pageable pageable) : 페이징을 적용해 엔티티를 조회.

findAll(Sort sort) : 특정 정렬 조건에 따라 엔티티를 조회.

 

11. BeanPostProcessor 메서드

 

BeanPostProcessor는 빈 초기화 전후로 커스텀 로직을 적용할 수 있는 메서드를 제공해:

 

postProcessBeforeInitialization(Object bean, String beanName) : 빈이 초기화되기 전에 호출되는 메서드.

postProcessAfterInitialization(Object bean, String beanName) : 빈이 초기화된 후에 호출되는 메서드.

 

12. Environment 및 PropertySource 메서드

 

애플리케이션의 환경 변수나 프로퍼티 값을 읽는 데 사용하는 Environment 인터페이스의 주요 메서드들:

 

getProperty(String key) : 특정 키에 대한 프로퍼티 값을 조회.

containsProperty(String key) : 특정 프로퍼티가 존재하는지 확인.

getActiveProfiles() : 현재 활성화된 프로파일을 반환.

 

또한, PropertySource 클래스는 외부 설정 파일에서 값을 읽는 데 사용돼:

 

getProperty(String name) : 설정된 프로퍼티 값 조회.

 

13. Scheduling 관련 메서드

 

Spring에서는 스케줄링 기능을 통해 일정 주기마다 작업을 수행할 수 있어. 이를 위한 주요 메서드는 다음과 같아:

 

@Scheduled(fixedRate = long) : 일정한 시간 간격마다 작업을 실행.

@Scheduled(cron = String) : 크론 표현식을 사용해 작업을 실행.

@EnableScheduling : 스케줄링을 활성화하는 어노테이션.

 

14. Security 관련 메서드 (Spring Security)

 

Spring Security는 인증 및 권한 부여를 관리하는 모듈이야. 그중 대표적인 메서드는:

 

configure(HttpSecurity http) : HTTP 보안을 구성하는 메서드.

addFilterBefore(Filter filter, Class<? extends Filter> beforeFilter) : 특정 필터를 추가하는 메서드.

hasRole(String role) : 특정 권한을 검사하는 메서드.

permitAll() : 모든 사용자가 접근할 수 있도록 설정.

 

15. MessageSource 및 국제화(i18n) 관련 메서드

 

Spring에서 국제화(i18n)를 지원하기 위해 MessageSource를 사용하는데, 이 클래스는 다국어 메시지를 관리하는 데 사용돼:

 

getMessage(String code, Object[] args, String defaultMessage, Locale locale) : 메시지 코드를 기반으로 해당 로케일의 메시지를 반환.

getMessage(String code, Locale locale) : 인수 없이 메시지를 반환.

 

16. Event Handling 관련 메서드

 

스프링의 이벤트 기반 처리는 애플리케이션에서 이벤트를 발행하고 이를 처리하는 방식으로 동작해.

 

@EventListener : 특정 이벤트를 처리하는 메서드로 설정.

publishEvent(ApplicationEvent event) : 이벤트를 발행하는 메서드.

 

17. Spring WebFlux 관련 메서드

 

Spring WebFlux는 비동기 및 논블로킹 방식의 웹 애플리케이션을 개발할 수 있는 기능을 제공해. 주요 메서드는 다음과 같아:

 

Mono<T> just(T data) : 단일 값을 반환하는 비동기 스트림 생성.

Flux<T> fromIterable(Iterable<T> it) : 여러 값을 포함하는 비동기 스트림 생성.

@GetMapping : HTTP GET 요청을 처리하는 메서드로 WebFlux에서 사용됨.

 

18. Spring Boot 관련 메서드

 

Spring Boot는 설정을 자동으로 처리하고, 간편한 실행 환경을 제공해. 그중에서 대표적인 메서드는:

 

SpringApplication.run(Class<?> primarySource, String... args) : 스프링 애플리케이션을 실행하는 메서드.

@SpringBootApplication : 스프링 부트의 메인 설정 클래스에 붙는 애노테이션.

 

19. Test 관련 메서드 (Spring Test)

 

스프링에서는 다양한 테스트 기능을 제공하는데, 대표적인 메서드는:

 

@SpringBootTest : 스프링 부트 기반 통합 테스트를 실행.

@MockBean : 테스트용 가짜 빈을 생성.

@Autowired : 테스트 클래스에서 의존성을 주입받을 때 사용.

 

20. Reactive Programming (WebFlux) 관련 메서드

 

비동기 프로그래밍을 위한 WebFlux의 주요 메서드들:

 

Mono<T> fromCallable(Callable<T> supplier) : 지연된 값을 생성하고 비동기적으로 처리.

Mono<T> doOnNext(Consumer<? super T> onNext) : 처리 중간에 동작을 추가하는 메서드.

Flux<T> map(Function<? super T, ? extends R> mapper) : Flux의 각 요소를 변환.

 

더 많은 메서드와 기능은 Spring 공식 문서를 참고

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유