Questão nº 34
Questão de Tecnologia da Informação · FCC TRT23 2022 (nº 34)
A base do contêiner Inversion of Control (IoC), também conhecido como Dependency Injection (DI), do Spring Framework, é formada pelos pacotes
- A`org.springframework.beans` e `org.springframework.context` (alternativa correta)
- B`org.springframework.orm` e `org.springframework.jdbc`
- C`org.springframework.web` e `org.springframework.webmvc`
- D`org.springframework.core` e `org.springframework.expression`
- E`org.springframework.webmvc` e `org.springframework.websocket`
Resposta comentada
Gabarito Alternativa A
O contêiner Inversion of Control (IoC), também conhecido como Dependency Injection (DI) do Spring Framework, é como um gerente inteligente que cria e conecta os objetos (componentes) da sua aplicação automaticamente, em vez de você ter que fazer isso manualmente. Ele garante que cada parte do seu código receba o que precisa para funcionar, sem que você precise se preocupar em instanciar ou configurar essas dependências.
(A) Correta: O pacote `org.springframework.beans` define os conceitos fundamentais de beans (os objetos gerenciados pelo Spring) e a interface `BeanFactory`, que é o coração do contêiner IoC. O pacote `org.springframework.context` constrói sobre o `beans`, fornecendo a interface `ApplicationContext`, que é uma versão mais avançada e completa do `BeanFactory`, adicionando funcionalidades como internacionalização, propagação de eventos e carregamento de recursos, sendo a principal interface usada na maioria das aplicações Spring para gerenciar o ciclo de vida e as dependências dos objetos.
(B) Incorreta: Estes pacotes (`org.springframework.orm` e `org.springframework.jdbc`) são relacionados à persistência de dados e integração com bancos de dados (ORM e JDBC), não à base do contêiner IoC/DI.
(C) Incorreta: Estes pacotes (`org.springframework.web` e `org.springframework.webmvc`) são específicos para o desenvolvimento de aplicações web e o framework MVC do Spring, não para a base do contêiner IoC/DI. A armadilha aqui é que muitas pessoas associam Spring primariamente a aplicações web, mas o IoC é um conceito mais fundamental e independente da camada web.
(D) Incorreta: O pacote `org.springframework.core` contém classes utilitárias e de infraestrutura que são usadas por quase todas as partes do Spring Framework, incluindo o contêiner IoC, mas não é o contêiner em si. Ele fornece a base de suporte, mas não a implementação do IoC. O pacote `org.springframework.expression` fornece o Spring Expression Language (SpEL), uma linguagem de expressão usada dentro do contêiner para configurar beans, mas não é o contêiner. A armadilha da banca aqui é que "core" soa como "fundamental", e de fato é para o framework como um todo, mas não é a base específica do contêiner IoC/DI, que está nos pacotes `beans` e `context`.
(E) Incorreta: Estes pacotes (`org.springframework.webmvc` e `org.springframework.websocket`) são para desenvolvimento web, especificamente o framework MVC e suporte a WebSockets, não para a base do contêiner IoC/DI.
Fonte: FCC TRT23 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.