Integração de Arquivos para Gerenciamento de Funcionários

JavaBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como dividir e integrar os arquivos de configuração para um sistema de gerenciamento de funcionários usando o Spring Framework. O projeto visa demonstrar os benefícios da modularização da configuração e o uso da tag <import> para melhorar a capacidade de manutenção e colaboração do sistema.

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como dividir o arquivo applicationContext.xml em arquivos XML separados com base na funcionalidade do Spring (SpringData, SpringAOP e SpringJDBC).
  • Como implementar a configuração para cada arquivo XML separado para lidar com informações de funcionários, habilitar o Spring AOP e configurar a fonte de dados e o JdbcTemplate.
  • Como integrar os arquivos de configuração separados de volta ao arquivo applicationContext.xml usando a tag <import>.
  • Como testar a configuração integrada para garantir que o sistema esteja funcionando corretamente.

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Modularizar a configuração de uma aplicação baseada em Spring.
  • Utilizar a tag <import> para gerenciar e manter a configuração.
  • Compreender a importância de separar as preocupações na configuração para melhorar a capacidade de manutenção e colaboração.
  • Configurar a fonte de dados, JdbcTemplate e Spring AOP em uma aplicação Spring.

Implementando a Configuração springData.xml

Nesta etapa, você implementará o arquivo de configuração springData.xml para armazenar informações de funcionários.

  1. Abra o arquivo springData.xml no diretório /home/labex/project/EmployeeSystem/src/main/resources.
  2. Adicione a seguinte configuração para definir os beans de informações do funcionário:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:c="http://www.springframework.org/schema/c"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- Employee Information Beans -->
    <bean id="emp1" class="org.labex.pojo.Employees"
        c:employeeId="000001" c:employeeName="Smith" c:employeeSex="male"
        c:employeeBirthday="1993-11-06" c:employeeHiredate="2018-10-11" c:userId="1"/>

    <bean id="emp2" class="org.labex.pojo.Employees"
        c:employeeId="000021" c:employeeName="John" c:employeeSex="haha"
        c:employeeBirthday="1990-07-16" c:employeeHiredate="2019-10-21" c:userId="4"/>

    <bean id="emp3" class="org.labex.pojo.Employees"
        c:employeeId="000022" c:employeeName="Ada" c:employeeSex="female"
        c:employeeBirthday="1993-02-11" c:employeeHiredate="2019-12-27" c:userId="12"/>

    <bean id="emp4" class="org.labex.pojo.Employees"
        c:employeeId="000035" c:employeeName="Brown" c:employeeSex="male"
        c:employeeBirthday="1991-06-23" c:employeeHiredate="2020-05-06" c:userId="19"/>

    <bean id="emp5" class="org.labex.pojo.Employees"
        c:employeeId="000066" c:employeeName="Emma" c:employeeSex="sss"
        c:employeeBirthday="1997-12-21" c:employeeHiredate="2021-01-03" c:userId="20"/>

</beans>

Implementando a Configuração springAOP.xml

Nesta etapa, você implementará o arquivo de configuração springAOP.xml para habilitar o Spring AOP, anotar aspectos AspectJ e declarar as classes recomendadas.

  1. Abra o arquivo springAOP.xml no diretório /home/labex/project/EmployeeSystem/src/main/resources.
  2. Adicione a seguinte configuração para habilitar o AOP e declarar o bean EmployeeAdvice:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/aop
                           http://www.springframework.org/schema/aop/spring-aop.xsd">

    <!-- AOP Configurations -->
    <aop:aspectj-autoproxy />
    <bean id="employeeAdvice" class="org.labex.advice.EmployeeAdvice" />

</beans>

Implementando a Configuração springJDBC.xml

Nesta etapa, você implementará o arquivo de configuração springJDBC.xml para configurar a fonte de dados (data source) e o JdbcTemplate.

  1. Abra o arquivo springJDBC.xml no diretório /home/labex/project/EmployeeSystem/src/main/resources.
  2. Adicione a seguinte configuração para definir a fonte de dados e o bean JdbcTemplate:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- Property Placeholder for Database Configuration -->
    <context:property-placeholder location="classpath:database.properties"/>

    <!-- DataSource Bean Configuration -->
    <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"
          p:driverClassName="${jdbc.driver}" p:url="${jdbc.url}"
          p:username="${jdbc.username}" p:password="${jdbc.password}" />

    <!-- JdbcTemplate Bean Configuration -->
    <bean id="template" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg index="0" ref="datasource" />
    </bean>

</beans>

Integrando os Arquivos de Configuração

Nesta etapa, você integrará os três arquivos de configuração no arquivo applicationContext.xml usando a tag <import>.

  1. Abra o arquivo applicationContext.xml no diretório /home/labex/project/EmployeeSystem/src/main/resources.
  2. Adicione a seguinte configuração para importar os três arquivos XML:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- Package scanning -->
    <context:component-scan base-package="org.labex.dao"/>

    <!-- Importing external configuration files -->
    <import resource="classpath:springData.xml"/>
    <import resource="classpath:springAOP.xml"/>
    <import resource="classpath:springJDBC.xml"/>

</beans>

Testando a Configuração

Nesta etapa, você executará a classe de teste para garantir que a configuração esteja funcionando corretamente.

  1. Abra um terminal e navegue até o diretório /home/labex/project/EmployeeSystem usando o seguinte comando:
cd ~/project/EmployeeSystem/
  1. Inicie o serviço MySQL usando o seguinte comando:
sudo service mysql start
  1. Crie um novo banco de dados chamado employeesystem usando o seguinte comando:
mysql -uroot -e "CREATE DATABASE employeesystem"
  1. Importe o arquivo employeesystem.sql para o banco de dados employeesystem usando o seguinte comando:
mysql -uroot -p employeesystem < employeesystem.sql

Observação: Se você for solicitado com Enter password:, apenas pressione Enter!

  1. Execute o seguinte comando para executar o teste:
mvn test

O teste deve ser executado com sucesso, e você deverá ver a seguinte saída:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.labex.TestEmployeeSystem
//...Omit the test output...
Results :

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  7.645 s
[INFO] Finished at: 2024-01-05T16:27:39Z
[INFO] ------------------------------------------------------------------------

Parabéns! Você dividiu com sucesso o arquivo applicationContext.xml e integrou a configuração usando a tag <import>.

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar