Quando desenvolvemos um serviço para atender aos clientes internos e externos de uma aplicação, é muito comum controlar as transações do serviço de forma manual, por meio do processo BMT (Bean Management Transaction), ou simplesmente delegando o controle transacional para o container de execução da aplicação, técnica esta conhecida como CMT (Container Management Transation). Na maior parte das aplicações, os desenvolvedores optam por trabalhar com o conceito de CMT, deixando que o container gerencie o processo de commit e rollback das transações.

Ainda que este controle seja delegado para o container, é possível passar certas instruções comportamentais relacionadas à propagação das transações nos métodos e/ou classes elegidas como transacionais. Além de abordar os conceitos básicos dos tipos de propagação de uma transação, será apresentado ao término deste post um exemplo prático de como declarar e instruir a propagação das transações numa classe de serviço desenvolvida com Enterprise Java Bean – EJB.

Continue reading

Atualmente é muito comum no processo de contratação de pessoal das empresas de tecnologia a aplicação de provas teóricas ou hands on sobre assuntos relacionados ao cargo pretendido, a fim de validar os conhecimentos do profissional entrevistado. Hoje abordaremos um tema relacionado à tecnologia Java que constantemente é apresentado pelos entrevistadores aos aspirantes ao novo cargo: A diferença entre as classes String, StringBuilder e StringBuffer. Apesar de ser um tema relativamente básico pra quem já desenvolve aplicações baseadas em Java, este é um assunto que alinhado à pressão da entrevista, ansiedade e entre outros, pode causar uma certa confusão no profissional.

Continue reading