Toda classe Managed Bean que implementa uma interface precisa ter implementado todos os métodos da interface. Além disso, podemos utilizar uma anotação para que quando um método específico concluir sua execução, a instância do objeto Managed Bean seja eliminada da memória. Neste sentido, analise o código-fonte da interface a seguir, e então implemente uma classe Managed Bean que implemente esta interface, e tenha um método qualquer que tenha esta anotação, fazendo com que a instância do Managed Bean seja eliminada da memória após sua execução.
public interface Email {
void enviaEmail(String email);
void enviaLoteEmails(
List<String> listaEmails);
package managedbeans; import java.util.ArrayList; public class TestaCorreio { publicTestaCorreio( ) { } private void run( ) { Correio correio = new Correio( ); correio.enviaEmail("xyz@company.com" ); ArrayList lista = new ArrayList( ); lista.add( "abc@company.com" );lista.add( "def@company.com" ); lista.add( "ghi@company.com" ); correio.enviaLoteEmails(lista ); correio = null; system.out.println( "FIM" ); } public static void main( String[ ] args ) {TestaCorreio obj = new TestaCorreio( ); obj.run( ); } }
Código de exemplo implementando a interface Email. No meu exemplo alterei a interface para IEmail ao invés de Email.
Além dosso, adicionei a anotação @RequestScoped, pois a arvore de objetos só será mantida durante o request
package br.com.uniasselvi;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean(name = "EmailMB")
@RequestScoped
public class EmailMB implements IEmail{
public EmailMB() {
}
@Override
public void enviaEmail(String email) {
//Método para envio de e-mail herdado da interface IEmail
}
@Override
public void enviaLoteEmails(List listaEmails) {
////Método para envio de e-mail em lote herdado da interface IEmail
}
}
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar