Интеграция файлов управления сотрудниками

JavaBeginner
Практиковаться сейчас

Введение

В этом проекте вы научитесь разделять и интегрировать файлы конфигурации для системы управления сотрудниками с использованием Spring Framework. Цель проекта - показать преимущества модульного подхода к конфигурации и использования тега <import> для улучшения поддерживаемости и сотрудничества в системе.

🎯 Задачи

В этом проекте вы научитесь:

  • Как разделить файл applicationContext.xml на отдельные XML-файлы на основе функциональности Spring (SpringData, SpringAOP и SpringJDBC).
  • Как реализовать конфигурацию для каждого отдельного XML-файла для обработки информации о сотрудниках, включить Spring AOP и настроить источник данных и JdbcTemplate.
  • Как интегрировать отдельные файлы конфигурации обратно в файл applicationContext.xml с использованием тега <import>.
  • Как протестировать интегрированную конфигурацию, чтобы убедиться, что система работает правильно.

🏆 Достижения

После завершения этого проекта вы сможете:

  • Модульно конфигурировать Spring-приложение.
  • Использовать тег <import> для управления и поддержки конфигурации.
  • Разобраться в важности разделения задач в конфигурации для улучшения поддерживаемости и сотрудничества.
  • Конфигурировать источник данных, JdbcTemplate и Spring AOP в Spring-приложении.

Реализация конфигурации springData.xml

В этом шаге вы реализуете файл конфигурации springData.xml для хранения информации о сотрудниках.

  1. Откройте файл springData.xml в директории /home/labex/project/EmployeeSystem/src/main/resources.
  2. Добавьте следующую конфигурацию для определения бинов информации о сотрудниках:
<?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">

    <!-- Бины информации о сотрудниках -->
    <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>

Реализация конфигурации springAOP.xml

В этом шаге вы реализуете файл конфигурации springAOP.xml для включения Spring AOP, аннотирования аспектов AspectJ и объявления рекомендуемых классов.

  1. Откройте файл springAOP.xml в директории /home/labex/project/EmployeeSystem/src/main/resources.
  2. Добавьте следующую конфигурацию для включения AOP и объявления бина 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 -->
    <aop:aspectj-autoproxy />
    <bean id="employeeAdvice" class="org.labex.advice.EmployeeAdvice" />

</beans>

Реализация конфигурации springJDBC.xml

В этом шаге вы реализуете файл конфигурации springJDBC.xml для настройки источника данных и JdbcTemplate.

  1. Откройте файл springJDBC.xml в директории /home/labex/project/EmployeeSystem/src/main/resources.
  2. Добавьте следующую конфигурацию для определения бина источника данных и 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">

    <!-- Свойство-заполнитель для конфигурации базы данных -->
    <context:property-placeholder location="classpath:database.properties"/>

    <!-- Конфигурация бина DataSource -->
    <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 id="template" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg index="0" ref="datasource" />
    </bean>

</beans>

Интеграция файлов конфигурации

В этом шаге вы интегрируете три файла конфигурации в файл applicationContext.xml с использованием тега <import>.

  1. Откройте файл applicationContext.xml в директории /home/labex/project/EmployeeSystem/src/main/resources.
  2. Добавьте следующую конфигурацию для импорта трех 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">

    <!-- Сканирование пакетов -->
    <context:component-scan base-package="org.labex.dao"/>

    <!-- Импорт внешних файлов конфигурации -->
    <import resource="classpath:springData.xml"/>
    <import resource="classpath:springAOP.xml"/>
    <import resource="classpath:springJDBC.xml"/>

</beans>

Тестирование конфигурации

В этом шаге вы запустите тестовый класс, чтобы убедиться, что конфигурация работает правильно.

  1. Откройте терминал и перейдите в директорию /home/labex/project/EmployeeSystem с использованием следующей команды:
cd ~/project/EmployeeSystem/
  1. Запустите службу MySQL с использованием следующей команды:
sudo service mysql start
  1. Создайте новую базу данных с именем employeesystem с использованием следующей команды:
mysql -uroot -e "CREATE DATABASE employeesystem"
  1. Импортируйте файл employeesystem.sql в базу данных employeesystem с использованием следующей команды:
mysql -uroot -p employeesystem < employeesystem.sql

Примечание: Если вас попросят ввести пароль (Enter password:), просто нажмите Enter!

  1. Запустите следующую команду для выполнения теста:
mvn test

Тест должен успешно пройти, и вы должны увидеть следующий вывод:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.labex.TestEmployeeSystem
//...Пропускаем вывод теста...
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] ------------------------------------------------------------------------

Поздравляем! Вы успешно разделили файл applicationContext.xml и интегрировали конфигурацию с использованием тега <import>.

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.

✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться