Код: Выделить всё
@Component// Reemplaza @Component para que Spring registre este serializadorpublic class Template1Serializer extends JsonSerializer implements ApplicationContextAware {
//private static ApplicationContext applicationContext;
private CustomerUserServiceIMPL customerUserServiceIMPL;
public Template1Serializer() {
// Obtener el servicio manualmente desde el contexto de Spring
// this.customerUserServiceIMPL = ApplicationContextProvider.getBean(CustomerUserServiceIMPL.class);
}
@PostConstruct
public void init() {
// Usamos ApplicationContextProvider para obtener el servicio después de la inicialización de Spring
this.customerUserServiceIMPL = ApplicationContextProvider.getBean(CustomerUserServiceIMPL.class);
}
/* @Override
public void setApplicationContext(ApplicationContext context) throws BeansException {applicationContext = context;this.customerUserServiceIMPL = applicationContext.getBean(CustomerUserServiceIMPL.class);}*/
@Override
public void serialize(Template1 template1, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
String usuario=";";
if (this.customerUserServiceIMPL == null) {
System.out.println("CustomerUserServiceIMPL es null en serialize()");
jsonGenerator.writeStartObject();
jsonGenerator.writeStringField("body", template1.getTemplateText() + " - Mensaje añadido serializador"+usuario+"no hay nada");
jsonGenerator.writeEndObject();
} else {
System.out.println("CustomerUserServiceIMPL está disponible en serialize()");
String usuario2=getuser();
jsonGenerator.writeStartObject();
System.out.println("deberia añadir "+usuario2);
jsonGenerator.writeStringField("body", template1.getTemplateText() + " - Mensaje añadido serializador"+usuario2+"final");
jsonGenerator.writeEndObject();
}
}
private String getuser() {
System.out.println("Servicio ejecutado");
Optional profiletest = customerUserServiceIMPL.getCustomerFromPhonenunmber("573248324121");
if (profiletest.isPresent()) {
System.out.println(profiletest.get().getCustomerName());
System.out.println(profiletest.get().getCedula());
String retorno="hola querido usuario tu nombre es "+profiletest.get().getCustomerName()+"y tu cedula es"+profiletest.get().getCedula();
return retorno;
} else {
System.out.println("No se encontró el perfil.");
return null;
}
}
Эта версия Делает вашу попытку и задачу, с которой вы сталкиваетесь с ясностью.>
Подробнее здесь: https://stackoverflow.com/questions/794 ... serializer