스프링

· 스프링
이슈 요약Spring 6.2.3 이후 버전에서 GenericConversionService에서 잘못된 컨버터가 선택되는 문제가 발생했습니다. 6.2.3 전후 컨버터 선택 로직의 변화6.2.3 이전 - 컨버터 선택 방식@Nullable public GenericConverter getConverter(TypeDescriptor sourceType, TypeDescriptor targetType) { for (GenericConverter converter : this.converters) { if (!(converter instanceof ConditionalGenericConverter genericConverter) || genericConverter...
· 스프링
spring 6.2.4 버전 이후의 코드를 기준으로 작성하였습니다. GenericConversionService: 대부분의 환경에 적합한 ConversionService의 기본 구현입니다. ConfigurableConversionService 인터페이스 등록 API를 통해 ConverterRegistry를 간접적으로 구현하고 있습니다.ConversionService: 타입 변환을 위한 인터페이스입니다. 이것이 변환 시스템의 진입점입니다. 이 시스템의 convert(Object, Class) 사용하여 스레드 안전 타입 변환을 수행할 수 있습니다.ConverterRegistry: 타입 변환 시스템을 변환기에 등록하기 위해 사용합니다.ConfigurableConversionService: 모든 변환 서비스 유..
· 스프링
BeforeSaveCallback를 기준으로 작성하였습니다.Entity Callbacks 공식 문서 정리동기식, JDBCentityCallbacks.callback 실행까지JdbcAggregateTemplate을 사용해 save를 진행하는 과정은 아래와 같습니다.// JdbcAggregateTemplatepublic T save(T instance) { Assert.notNull(instance, "Aggregate instance must not be null"); verifyIdProperty(instance); return performSave(new EntityAndChangeCreator(instance, changeCreatorSelectorForSave(insta..
· 스프링
EntityCallback은 Spring Data Relation 프로젝트입니다. Spring 데이터 인프라는 특정 메서드가 호출되기 전과 후에 엔티티를 수정하기 위한 훅을 제공합니다. 이러한 EntityCallback 인스턴스는 콜백 방식으로 엔티티를 확인하고 잠재적으로 수정할 수 있는 편리한 방법을 제공합니다.EntityCallback은 특수한 ApplicationListener와 매우 유사합니다. 엔티티 콜백은 동기식 및 반응형 API를 모두 갖춘 통합 지점을 제공하여 처리 체인 내에서 잘 정의된 체크포인트에서 순서대로 실행되도록 보장하며, 잠재적으로 수정된 엔티티 또는 반응형 래퍼 유형을 반환합니다. 엔티티 콜백은 일반적으로 API 유형별로 구분됩니다. 이러한 분리는 동기식 API는 동기식 엔티티..
· 스프링
public @interface InsertOnlyProperty공식 문서에 따르면 이 어노테이션이 있는 프로퍼티는 업데이트가 아닌 삽입 작업 중에만 데이터베이스에 기록된다고 합니다.@InsertOnlyProperty는 spring-data-relation에 속하는 어노테이션으로 JDBC와 R2DBC 접근을 위해 사용됩니다. 삽입 중에만 기록될 수 있는 이유// SqlGenerator// Columns 생성Columns(RelationalPersistentEntity entity, MappingContext, RelationalPersistentProperty> mappingContext, JdbcConverter converter) { this.mappingCont..
· 스프링
HandlerMethod 등록스프링에서 requestMappingHandlerMapping이 생성되며 선언한 컨트롤러의 메서드들이 요청처리를 위한 메타정보과 함께 HandlerMethod로 등록된다.public HandlerMethod( String beanName, BeanFactory beanFactory, @Nullable MessageSource messageSource, Method method) { super(method); Assert.hasText(beanName, "Bean name is required"); Assert.notNull(beanFactory, "BeanFactory is required"); this.bean..
belljun
'스프링' 카테고리의 글 목록