DEV Community

Mattheus Cassundé
Mattheus Cassundé

Posted on • Edited on

1

[Dica rápida de CDI] - Observando o início

As vezes precisamos executar alguns comandos quando nossa aplicação é iniciada, portanto quem usa algum framework moderno consegue saber quando sua app subiu e com o CDI não é diferente.

CDI contém uma funcionalidade de ajuda na implementação do padrão de projeto Observer.

A Própria especificação usa esse padrão em suas rotinas internas, vamos usar umas dessas chamadas para observarmos quando o CDI for carregado ao levantar o servidor de aplicação, com o código abaixo fica fácil:

@ApplicationScoped
public class StartSchedule {

    public void init(@Observes @Initialized(ApplicationScoped.class) Object init) {

        System.out.println("CDI Iniciado");
    }

    public void destroy(@Observes @Destroyed(ApplicationScoped.class) Object init) {

        System.out.println("CDI Finalizado");
    }
}
Enter fullscreen mode Exit fullscreen mode

Pronto agora podemos fazer alguma ação pois o contexto do CDI foi levantado e podemos usar todo o seu poder.

Cuidados

Quando usamos o método acima para observar a inicialização do CDI outros passos da inicialização só iram continuar após a conclusão deste ou seja o uso errado pode atrapalhar a inicialização completa da sua APP.

Podemos diminuir um pouco esse efeito se colocarmos toda a implementação de negócio para ser executada em outra thread, como no exemplo abaixo:

....

public void init(@Observes @Initialized(ApplicationScoped.class) Object init) {

        new Thread(new Runnable() {
            @Override
            public void run(){
                System.out.println("CDI Iniciado");
            }
        }).start();

    }
...
Enter fullscreen mode Exit fullscreen mode

Conclusão

CDI é uma poderosa ferramenta para ajudar na produtividade do desenvolvimento de soluções usando JavaEE/JarkataEE , essa é apenas uma das diversas funcionalidades que o CDI pode oferecer.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay