저는 Spring/Spring Boot가 유지 보수 담당 DI를 관리하는 방법을 이해하려고합니다.Spring Boot에서 Jackson ObjectMapper를 어떻게 구성합니까?
@Configuration
class MyAppInjector {
@Autowired
void configureJackson(ObjectMapper objectMapper) {
SimpleModule jacksonModule = new SimpleModule()
.addDeserializer(AccountDeserializer, new AccountDeserializer())
.addDeserializer(PhoneNumberDeserializer, new PhoneNumberDeserializer())
.addDeserializer(AddressDeserializer, new AddressDeserializer())
.addDeserializer(ContactDeserializer, new ContactDeserializer())
.addDeserializer(CustomerDeserializer, new CustomerDeserializer())
.addDeserializer(DeploymentInfoDeserializer, new DeploymentInfoDeserializer())
.addDeserializer(ServiceAgreementDeserializer, new ServiceAgreementDeserializer())
objectMapper.registerModule(jacksonModule)
}
}
그러나 나는 configureJackson(...)
어디서나 내 응용 프로그램의 소스 코드 내부에서 호출이 표시되지 않습니다 :이 응용 프로그램 내부에서 나는이처럼 보이는 MyAppInjector
그루비 파일을 참조하십시오. I 이 방법은 JSON을 POJO로 serialize하기 위해 Spring에서 사용하는 Jackson ObjectMapper
을 구성한다고 가정합니다.
여기에서 ObjectMapper
을 구성하는 방법은 무엇입니까? @Configuration
으로 주석이 달린 항목을 찾은 다음 어딘가에 등록 된 Jackson ObjectMapper
을보고이 configureJackson(...)
방법으로 전달합니까? 나에게 마술처럼 보입니다 ...
그리고 이건 의 방법은 @Configuration
으로 주석을 달았습니다.
@Configuration
class MyAppInjector {
@Autowired
Fizz fizz(Buzz buzz) {
new Fizz(buzz)
}
@Autowired
void configureJackson(ObjectMapper objectMapper) {
SimpleModule jacksonModule = new SimpleModule()
.addDeserializer(AccountDeserializer, new AccountDeserializer())
.addDeserializer(PhoneNumberDeserializer, new PhoneNumberDeserializer())
.addDeserializer(AddressDeserializer, new AddressDeserializer())
.addDeserializer(ContactDeserializer, new ContactDeserializer())
.addDeserializer(CustomerDeserializer, new CustomerDeserializer())
.addDeserializer(DeploymentInfoDeserializer, new DeploymentInfoDeserializer())
.addDeserializer(ServiceAgreementDeserializer, new ServiceAgreementDeserializer())
objectMapper.registerModule(jacksonModule)
}
}
... 그리고 Buzz
인스턴스가 건설시 Fizz
에 통과하는 봄이 지능적으로보고 기대 : 내가 좋아하는 방법을 만들 수 있습니다 의미?