leandromoraesrj / sincad-backend

PROJETO BASE DE EXEMPLO USANDO AS MELHORES PRATICAS DE DESENVOLVIMENTO
0 stars 0 forks source link

Criar Profiles de test, dev e prod (properties editor instalação) #7

Open leandromoraesrj opened 2 years ago

leandromoraesrj commented 2 years ago
leandromoraesrj commented 2 years ago
  1. Para Injetar um parâmetro de aplication.properties: @Qualifier("parâmetro") é para usar de um Bean e o @Value("${nome}") de aplication.properties

  2. Para alterar o contexto da aplicação: server.servlet.context-path=/sincad-backend

  3. Para obter a lista de parâmetros possíveis no application.properties acessar:
    https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html logging.level.org.springframework=INFO logging.level.org.springframework=ERROR spring.application.name=sincad logging.level.org.springframework=DEBUG Colocando modo DEBUG irá mostrar os SQL gerados do JDBCTemplate

  4. Para incluir trace dos parâmetros dos binds do sql logging.level.org.hibernate.type=trace spring.jpa.show-sql=true

  5. Para definir o profile que será usado: spring.profiles.active=dev

Tive problemas ao criar vários arquivos de properties por conta do encoding (usando caracteres especiais). Coloquei a palavra "produção", salvei os arquivos para UTF-8, executei o maven clean e a palavra virou "produção" Então, instalei o "Simple Properties Editor" no STS e associei para todos os arquivos, o qual já converte para unicode (produ\u00E7\u00E3o) os caracteres especiais."

Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources failed: newPosition < 0: (-1 < 0) (org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources:default-resources:process-resources)

  1. Para executar a configuração do profile Teste: Basta criar uma classe com @Configuration e @Profile(teste) e colocar os métodos com @Bean OFF << FATAL << ERRO << WARN << INFO << DEBUG << TRACE << TODO

  2. No application.properties é necessário ter a seguinte entrada para desativar o OSIV: spring.jpa.open-in-view=false OBS: Causou problema na hora da serialização de objetos ManyToMany, então retirei. Pq? Isso desativará o OSIV para que você possa lidar com o LazyInitializationExceptioncaminho certo.

A partir da versão 2.0, o Spring Boot emite [um aviso quando o OSIV] é ativado por padrão, para que você possa descobrir esse problema muito antes que ele afete um sistema de produção.

Se estivermos desenvolvendo um serviço CRUD simples, talvez faça sentido usar o OSIV, pois talvez nunca encontremos esses problemas de desempenho.

Por outro lado, se nos encontrarmos chamando muitos serviços remotos ou se houver muita coisa acontecendo fora de nossos contextos transacionais, é altamente recomendável desabilitar o OSIV completamente. Mais detalhes: https://www.baeldung.com/spring-open-session-in-view

Mais detalhes desse assunto na issue de DTO : https://github.com/leandromoraesrj/sincad-backend/issues/23

  1. Para definir um default schema: spring.jpa.properties.hibernate.default_schema=scad

  2. CONDITION EVALUATION DELTA log não é ideal para mostrar na inicialização além do ciclo de vida de desenvolvimento, deve ser desabilitado em outros ambientes: spring.devtools.restart.log-condition-evaluation-delta=false

Mais detalhes em : https://www.yawintutor.com/condition-evaluation-delta-spring-boot-console-log/