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.

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Engage with a sea of insights in this enlightening article, highly esteemed within the encouraging DEV Community. Programmers of every skill level are invited to participate and enrich our shared knowledge.

A simple "thank you" can uplift someone's spirits. Express your appreciation in the comments section!

On DEV, sharing knowledge smooths our journey and strengthens our community bonds. Found this useful? A brief thank you to the author can mean a lot.

Okay