Entrevista Técnica para Desenvolvedor Full Stack Java: Análise do Fluxo Completo

Candidato: Obrigado pelo seu tempo. Tenho 5 anos de experiência como desenvolvedor full stack Java, com domínio de tecnologias front-end e back-end. Primeira Rodada: Fundamentos de Java e JVM Entrevistador: Primeiro, explique o mecanismo de garbage collection do Java. Candidato: A coleta de lixo é gerenciada automaticamente pela JVM, que verifi ...

Publicado em 6-26 19:19

Compreendendo as Diferenças entre resultMap e resultType no MyBatis

O resultType e o resultMap são utilizados no MyBatis para mapear os resultados de consultas SQL para objetos Java. Embora ambos compartilhem o objetivo de popular objetos, o resultMap oferece um nível de controle e flexibilidade muito superior. A principle diferença reside na forma como o mapeamento é realizado. O resultType depende de uma corr ...

Publicado em 6-22 22:14

Técnicas de Mapeamento de Entidades e Consultas Dinâmicas Multi-Schema com Spring Boot

Utilitário para Conversão de Modelos e DTOs No desenvolvimento de APIs robustas, a conversão frequente entre entidades de banco de dados e objetos de transferência de dados (DTOs) é uma tarefa comum. Para otimizar esse processo, podemos implementar uma classe utilitária baseada no BeanUtils do Spring e na API de Streams do Java. package com.pro ...

Publicado em 6-21 23:07

Sistema de E-commerce para Petshop: Arquitetura SpringBoot, Vue.js e UniApp

Introdução Este artigo apresenta o desenvolvimento de um sistema completo de e-commerce para petshop, utilizando uma arquitetura moderna baseada em SpringBoot para o backend, Vue.js para o frontend web e UniApp para aplicações móveis. O sistema oferece funcionalidades completas de gerenciametno de produtos, carrinho de compras, controle de usuá ...

Publicado em 6-21 16:00

Implementação de Aspectos Personalizados e Configuração de OSS em um Sistema de Delivery

Aspecto Personalizado para Preenchimento Automático de Campos Para automatizar o preenchimento de campos comuns, definimos uma anotação customizada e um aspecto AOP. @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface PreenchimentoAuto { TipoOperacao valor(); } O aspecto intercepta métodos no pacote de mapead ...

Publicado em 6-19 19:35

Desenvolvimento de DAO Tradicional e Uso de Proxy Mapper no MyBatis

Componentes Fundamentais do MyBatis Antes de explorar as estratégias de acesso a dados, é crucial compreender o ciclo de vida e a responsabilidade dos objetos centrais do framework: SqlSessionFactoryBuilder: Atua como uma classe utilitária para construir a fábrica de sessões. Não requer gerenciamento via Singleton; deve ser instanciada, utiliz ...

Publicado em 6-17 23:21

Implementação de Paginação e Cache em MyBatis

Paginação em MyBatis: Lógica vs Física Paginação Lógica O MyBatis utiliza paginação lógica por padrão, onde todos os registros são carregadso na memória antes da seleção do subconjunto desejado. Por exemplo, com 100 registros no banco e página de 10 elementos, todos os 100 são transferidos para memória antes da extração. Essa abordagem possui l ...

Publicado em 6-17 22:48

Simplificando Condições IN com @Select no MyBatis

Ao migrar recentemente do JPA para o MyBatis utilizando configuração sem XML e anotações @Select diretamente nas interfaces, deparei-me com a complexidade na implementação de condições IN. A abordagem tradicional exige uma sintaxe bastante verbosa: @Select({"<script>", "SELECT *", "FROM artigo&q ...

Publicado em 6-16 02:56

Java no Desenvolvimento Real: Anotações Comuns com Cenários de Uso Prático

No caminho para aprofundar o desenvolvimento em Java, as anotações (Annotations) são uma "ferramenta mágica" para aumentar a eficiência. Elas não são tão intuitivas quanto a lógica de negócios, mas simplificam silenciosamente as configurações, normalizam o código e reduzem o acoplamento, nos libertando de configurações XML complexas e ...

Publicado em 6-15 16:46

Otimizando Paginação Física no Oracle com MyBatis: Como Evitar o Problema de Hard Parse

O RowBounds padrão do MyBatis realiza o que chamamos de paginação em memória. Ele recupera todo o conjunto de dados do banco de dados e, somente no lado da aplicação, extrai o subconjunto desjeado. Em sistemas com grandes volumes de dados, essa abordagem é um caminho rápido para erros de OutOfMemoryError (OOM). A solução convencional no ecossis ...

Publicado em 6-15 03:31