Usando Validação de Bean no Produto
A especificação Java™ Enterprise Edition (Java EE) 7 inclui a API do Bean Validation 1.1 que é um mecanismo padrão para validar JavaBeans em todas as camadas de um aplicativo.
Sobre Esta Tarefa
Antes da especificação de uma Validação de Bean, JavaBeans eram validados em cada camada. Para evitar a reimplementação de validações em cada camada, os desenvolvedores configuraram as validações diretamente em suas classes ou código de validação copiada, o que geralmente era desordenado. Ter uma implementação que seja comum para todas as camadas do aplicativo simplifica o trabalho dos desenvolvedores e economiza tempo.
A validação de bean é comum a todas as camadas de um aplicativo. Especificamente, os aplicativos da Web possuem as seguintes camadas:- Apresentação
Esta camada representa como o usuário interage com o aplicativo e pode ser construído em um thin client ou rich client.
- Negócios
Esta camada coordena o aplicativo, processa comandos, toma decisões lógicas e avalia e realiza cálculos. Ela também move e processa dados entre as duas outras camadas. O EJB contém lógica de negócios no WebSphere Application Server.
- Acesso a dados
Seus dados são armazenados e recuperados a partir de um banco de dados ou sistema de arquivos nessa camada. A camada de negócios processa os dados e os envia em formato utilizável para a interface com o usuário. O WebSphere Application Server suporta diversos bancos de dados e métodos de recuperação de dados. Esta camada também define a persistência.
Para o WebSphere Application Server, estas camadas são construídas e administradas com diversos componentes no produto que são necessários para o desenvolvimento e implementação de aplicativos.
O produto fornece suporte para o Bean Validation API no ambiente do Java Platform, Enterprise Edition (Java EE) fornecendo um serviço de validação de bean em múltiplas tecnologias Java EE incluindo Java Servlets, Enterprise JavaBeans, Java Persistence API (JPA) 2.1, Java EE Connector API (JCA) 1.7 e Java ServerFaces (JSF) 2.2. A validação de bean fornece a essas tecnologias uma maneira de manter a integridade de dados em um ambiente integrado e padrão.
O desenvolvimento de aplicativos corporativos envolve várias equipes desenvolvendo vários aplicativos e módulos que são montados e implementados em um ambiente de servidor de aplicativos. O produto garante que todos os dados de aplicativo e módulo sejam validados de forma independente. A validação é executada usando apenas as restrições definidas para o aplicativo e módulo.
O que Fazer Depois
- Recursos de acesso a dados:
Validação de bean em módulos RAR.
O produto valida restrições do Enterprise JavaBeans (EJB) do Resource Adapter Archive (RAR) em conformidade com a especificação JCA versão 1.7. Os adaptadores de recursos podem usar as anotações de restrições de validação de bean integradas para fornecer uma configuração XML de validação de bean para especificar os requisitos de validação de propriedades da configuração do adaptador de recursos para o servidor de aplicativos.
- Usando validação de bean no JPA
Um novo recurso definido pela especificação JPA 2.1 é a capacidade de integração direta com o Bean Validation API. Com esforço mínimo, o JPA 2.1 pode ser acoplado ao provedor de validação para validação de dados de tempo de execução. Ao combinar essas duas tecnologias, você obtém uma solução de persistência padronizada com a capacidade agregada de executar a validação de dados padronizada.
- Usando validação de bean com JSF
Anteriormente, o JSF era capaz de validar beans, mas agora ele fornece suporte integrado da especificação Bean Validation.
- Usando validação de bean no contêiner da Web
O contêiner da Web fornece uma instância de ValidatorFactory e a torna disponível para implementações JSF armazenando-a em um atributo de contexto de servlet chamado javax.faces.validator.beanValidator.ValidatorFactory.
- Usando validação de bean com o contêiner integrável.Para usar a validação de bean com o contêiner EJB integrável, as classes javax.validation deverão existir no caminho da classe. Isso pode ser feito de uma de duas maneiras:
- Inclua o JPA thin client que está localizado no diretório ${WAS_INSTALL_ROOT}\runtimes\ no caminho da classe. Para JPA 2.1, use com.ibm.ws.jpa-2.1.thinclient_9.0.jar ou para JPA 2.0, com.ibm.ws.jpa-2.0.thinclient_9.0.jar. Consulte o tópico Executando um Contêiner Integrável e também as informações sobre o JPA para obter mais informações.
- Inclua um arquivo Java archive (JAR) do provedor de validação de bean de terceiro no caminho da classe do tempo de execução de contêiner EJB integrável.
- Os novos métodos de API que forem incluídos no Bean Validation 1.1 não funcionarão quando estiverem em objetos JPA.
- A validação automática de construtor/método não está disponível.
- Não é possível usar @Inject para injetar um Validator/ValidatorFactory.
- Não é possível usar CDI ao criar componentes validation.xml customizados, como MessageInterpolator ou ParameterNameProvider.