Boa tarde, estou com um problema ao tentar exibir uma messagem do meu messages.properties quando é lançado uma exceção de ConstraintViolationException. Eu tenho essa mensagem :
ConstraintViolationImpl{interpolatedMessage='{validation.social-name}', propertyPath=socialName, rootBeanClass=class com.example.app.models.entities.Company, messageTemplate='{validation.social-name}'}
Mas na minha messages.properties eu tenho ela definida como:
validation.social-name=Razão social não pode ser branco
Segue o código abaixo:
@SpringBootApplication
public class App {
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
@Bean
public LocalValidatorFactoryBean validator() {
LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean();
bean.setValidationMessageSource(messageSource());
return bean;
}
public static void main(String[] args) {
SpringApplication.run(App .class, args);
}
}
@Entity
@Data
@Builder(toBuilder = true)
@AllArgsConstructor
@NoArgsConstructor
public class Company {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
@CNPJ
private String cnpj;
@Column(nullable = false)
@NotBlank(message = "{validation.social-name}")
private String socialName;
}
Queria saber também se dessa forma é uma boa pática de desenvolvimento colocar mensagens de retorno para o meu úsuario no modelo da aplicação, ou se tem uma melhor forma de gerenciar esses retornos.