본문 바로가기

TIL

TIL) ParameterNamesModule 이슈, 에너테이션 클래스에서 사용 가능한 타입, 전체 프로젝트 의존성 트리

1. ParameterNamesModule 이슈

 

아래는 WebMvcAutoConfiguration 클래스다.

따로 웹의 설정을 하지 않았다면, messeage 컨버터로 다음과 같이 준비가 되며, Http 메세지를 convert 하는 것은 MappingJackson2HttpMessageConverter 로 자동 등록된다.

 

그리고, JacksonAutoConfiguration 에 parameterNamesModule 이 등록된다.

	@Configuration(proxyBeanMethods = false)
	@ConditionalOnClass(ParameterNamesModule.class)
	static class ParameterNamesModuleConfiguration {

		@Bean
		@ConditionalOnMissingBean
		ParameterNamesModule parameterNamesModule() {
			return new ParameterNamesModule(JsonCreator.Mode.DEFAULT);
		}

	}

 

 

 

그런데 만약,

커스텀한 웹 설정을 위해 WebMvcConfig 인터페이스를 구현하고, extendMessageConverters 를 재정의하였다면

parameterNamesModule 를 직접 등록해줘야 한다.

 

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new ParameterNamesModule());

https://github.com/FasterXML/jackson-modules-java8/tree/master/parameter-names

 

GitHub - FasterXML/jackson-modules-java8: Set of support modules for Java 8 datatypes (Optionals, date/time) and features (param

Set of support modules for Java 8 datatypes (Optionals, date/time) and features (parameter names) - GitHub - FasterXML/jackson-modules-java8: Set of support modules for Java 8 datatypes (Optionals,...

github.com

 

 

 

 

2. 에너테이션 클래스에서 사용 가능한 타입

  • primitive
  • String
  • an Enum
  • another Annotation
  • Class
  • an array of any of the above

 

 

3. 프로젝트 전체 의존성 트리 보기

프로젝트 위치에서

./gradlew app:dependencies