Interrupção de Threads em Java: Um Guia para Encerrar Tarefas Cooperativamente

No universo da programação concorrente em Java, o conceito de "interrupção de thread" difere significativamente de uma interrupção de hardware ou uma exceção de sistema operacional. Em Java, a interrupção é um mecanismo cooperativo para sinalizar a uma thread que ela deve cessar suas operações atuais e encerrar de forma controlada. Ao ...

Publicado em 7-18 19:42

Fundamentos e Funcionamento do Java Server Pages (JSP)

O Java Server Pages (JSP) é uma tecnologia baseada em Java que simplifica a criação de páginas web dinâmicas. Ao contrário dos Servlets tradicionais, onde o HTML é inserido dentro de código Java (o que torna a manutenção complexa), o JSP permite que o código Java seja inserido diretamente em arquivos HTML, invertendo a lógica de desenvolvimento ...

Publicado em 7-18 18:51

Introdução ao Sa-Token: Simplificando a Autenticação para Desenvolvedores Java

Ao longo dos anos desenvolvendo em Java, muitos de nós, tanto iniciantes quanto experientes, já enfrentamos dificuldades com a autenticação e autorização. Seja mergulhando nas complexas configurações do Spring Security, lutando com cadeias de filtros, adaptando o Shiro para projetos de front-end/back-end separados, ou até mesmo implementando fu ...

Publicado em 7-18 12:14

Gerando Números Aleatórios em um Intervalo Específico com Java

A necessidade de gerar números aleatórios dentro de um intervalo definido é uma tarefa comum no desenvolvimento de software. Seja para simulações, testes, jogos ou para introduzir variabilidade em alguma lógica de negócio, a linguagem Java oferece a clase java.util.Random para essa finalidade. Compreender como utilizá-la para obter valores em u ...

Publicado em 7-18 12:08

Entendendo as Interfaces Callable e Future em Java

Java oferece duas formas de criar threads: usando a classe Thread ou a interface Runnable. Porém, Runnable não permite retornar resultados após a conclusão da thread. A interface Callable resolve esse problema, definindo um método call() que retorna um valor ao finalizar. call() pode retornar resultados e lançar exceções, diferentemente de run ...

Publicado em 7-18 08:24

Implementação do Sistema de Gestão Hospitalar - Upload de Dados

3. Intefrace de Upload Hospitalar 3.1 Interface de Upload e Consulta de Hospitais O sistema hospital-manage deve ser importado para gerenciar informações hospitalares. No banco de dados MySQL, crie o banco de dados yygh_manage e as seguintes tabelas: # # Estrutura da tabela "hospital_set" # CREATE TABLE `hospital_set` ( `id` bigint ...

Publicado em 7-18 08:20

Prevenção de Submissão Duplicada com Spring MVC

Prevenção de Submissão Duplicada com Spring MVC Em aplicações web, submissões repetidas de formulários podem causar prbolemas como inserções de dados múltiplas. Uma abordagem eficaz envolve o uso de tokens únicos associados à sessão do usuário, gerenicados por um enterceptor no Spring MVC para validar requisições e bloquear duplicatas. Princípi ...

Publicado em 7-17 16:42

Determinando Tipos de Arquivo em Java através de Números Mágicos

A validação de tipos de arquivos é uma funcionalidade essencial em diversas aplicações web. Ao verificar corretamente o tipo do arquivo enviado, podemos não apenas filtrar uploads inadequados, mas também prevenir a execução de arquivos maliciosos e evitar que o servidor seja utilizado como armazenamento gratuito. Não devemos confiar apenas na e ...

Publicado em 7-17 11:02

Gerenciamento Centralizado de Configurações com Spring Cloud Config

O Spring Cloud Config fornece suporte para configurações externas em sistemas distribuídos, tanto do lado do servidor quanto do cliente. Com o Config Server, centraliza-se o gerenciamento de todas as propriedades de aplicativos em diferentes ambientes (desenvolvimento, teste, produção). Configuração do Servidor (Config Server) Para criar um ser ...

Publicado em 7-17 07:53

Propagação de Contexto de Solicitação em Subthreads com Spring MVC

No desenvolvimento com Spring MVC, acessar atributos da solicitação HTTP em subthreads requer atenção especial, pois o RequestContextHolder armazena dados no ThreadLocal do thread atual. Subthreads não herdam automaticamente esses valores, resultendo em null ao tentar obtê-los. Exemplo que demonstra o problema: @GetMapping("/endpoint-assin ...

Publicado em 7-17 07:13