"Aí está você."

"Eu pensei sobre isso e decidi ensinar a você mais uma pequena lição que será muito útil para você. Até você trabalhar como programador, provavelmente nunca encontrará alguma terminologia especial, então quero apresentar a você vários conceitos comuns agora."

"Cerca de 10 anos atrás, Enterprise  Java Beans  ( EJB ) tornou - se amplamente utilizado . "

"O que significa JavaBeans?"

"JavaBeans basicamente significa grãos de café (Java é um tipo de café). É humor de TI."

"A lógica de negócios de um programa tomava a forma de um grupo de objetos de alto nível, ou beans, que podiam trocar mensagens, salvar a si mesmos, encontrar uns aos outros pelo nome e muito mais. Normalmente, isso era obtido por meio de um super- classe pai sofisticada, embora houvesse outras abordagens. O comportamento de tais objetos era altamente regulamentado."

"Os três tipos mais famosos de beans EJB são:"

"Um Entity Bean é um bean cuja finalidade é armazenar determinados dados. Esse tipo de bean possui um mecanismo embutido para salvar a si mesmo e seus campos em um banco de dados. Esse tipo de objeto pode ser destruído e recriado posteriormente a partir do banco de dados. Mas além de armazenar dados, não tem nenhuma lógica."

"Um Session Bean é um bean funcional. Cada session bean tem sua própria função. Um faz uma coisa e outro faz outra coisa. Esses beans funcionam com outros objetos e beans, não com seus próprios dados."

" Beans de sessão são divididos em duas categorias."

"Um Stateless Session Bean é um bean cujas variáveis ​​internas não armazenam dados importantes de que ele precisa para funcionar. Esse tipo de bean pode ser destruído e depois recriado, e executará sua função exatamente como antes."

"Um Statefull Session Bean é um bean que armazena internamente os dados que usa ao trabalhar. Se chamarmos métodos em tal bean, então cada chamada subseqüente pode usar alguns dos dados passados ​​para o bean em chamadas anteriores. Ainda assim, este bean não é o mesmo que um objeto regular."

"Mas usar feijões também não era tão bom, então logo o pêndulo oscilou na direção oposta. E os desenvolvedores começaram a usar objetos comuns com mais frequência. Eles até criaram um nome especial."

"Um POJO é um objeto Java antigo  e simples  . Esses objetos não tinham nenhuma superfunção e não herdavam superobjetos. Eles eram apenas objetos Java comuns .

"Quando você conhecer o EJB na prática, entenderá a diferença. Grosso modo, um POJO é uma faca e um EJB é um canivete suíço que você também pode usar para fazer ligações."

"Comparação interessante."

"Sim, e aqui está mais uma coisa."

"Com o tempo, objetos e classes começaram a ser especializados. Como resultado, os desenvolvedores identificaram certas funções e deram novos nomes aos objetos correspondentes."

"Um objeto de transferência de dados ( DTO ) é um objeto criado para transportar dados. Esses objetos geralmente têm dois requisitos. Eles devem: a) ser capaz de armazenar dados, b) ser serializável. Em outras palavras, eles são usados ​​apenas para transferência de dados ."

"Você cria um objeto, grava os dados necessários da lógica de negócios nele, serializa-o em JSON ou XML e o envia para onde ele precisa ir. Ou vice-versa: uma mensagem chega, você a desserializa em um objeto DTO , e extrair dados dele."

"Uma Entidade é um objeto armazenado em um banco de dados. Mas eles não contêm nenhuma lógica de negócios. Pode-se dizer que são os dados do modelo de negócios."

"Também temos o objeto de acesso a dados ( DAO ). Um DAO é usado para salvar objetos e recuperá-los de um banco de dados. A entidade não faz isso, pois não possui nenhuma lógica, portanto não pode salvar qualquer coisa em qualquer lugar."

Exemplo:

Relacionamento entre um DAO e uma entidade
UserEntity user = UserDAO.getUserById("1535");
if (user.getAge() > 18)
{
 user.setMobilization(true);
 UserDAO.save(user);
}
Comentários
UserEntity is a class that stores user data
UserDAO is a class that retrieves data (UserEntity objects) from the database and stores it there again after modifying it.

"É tudo por agora."

"Mesmo que esta seja uma pequena lição introdutória, você ainda não será capaz de entender mais agora. Poderíamos passar dias falando sobre cada um desses tópicos e poderíamos passar anos cobrindo EJB."

"Mas eu quero que você pelo menos seja capaz de imaginar o que está sendo dito se você se deparar com essas coisas em conversas e mensagens, em fóruns ou em uma entrevista."

"Hmm. Obrigado, Bilaabo. Sim, acho que não conheço termos técnicos suficientes. Mais uma vez, muito obrigado."