-
Notifications
You must be signed in to change notification settings - Fork 0
inallyoung/spring-boot-demo
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Отредактировать application.properties - задать путь к файлу, задать порт. mvn clean package java -jar target/TestSpring-1.0-SNAPSHOT.jar Запустится приложение на указанном порту, которое каждую минуту выполняет сверку. Так же можно выполнить сверку вручную, вызывав ссылку http://localhost:8099/execute Дабы не захламлять комментариями код, напишу вкратце здесь. Базовый интерфейс Service с методами init и stop, от него наследуются интерфейсы для работы с БД (DataBaseStorage), с хранилищем транзакций (TransactionsStorage), с отчетами по транзакциям (TransactionsReport) Каждый из этих сервисов, помимо реализации методов инициализации и завершения, реализует свои методы. DataBaseStorage.getTransactionStatus позволяет искать в БД транзакию и возвращает ее статус. TransactionsStorage.next итерируется по хранилищу транзаккций, пока не дойдем до последней транзакции. TransactionsReport.sendTransaction отправляет транзакию в отчет. Еще есть сущности Transaction и TransactionStatus (смысл понятен из названия), в последнем также определен статический метод compareAndGetStatus, который сравнивает транзакию из базы и хранилища и возвращает ее статус. Все действо происходит в классе TrasactionService, логика там совсем простая. Итерируемся по хранилищу транзакций, ищем транзакцию в базе по id, возвращаем статус и отправляем в отчет. Есть еще утилитный класс SeviceRegister, в котором мы регистрируем три сервиса, чтобы удобно было их инициализировать вызовом init, а после завершать вызовом stop. Реализация сервисов находится impl. Зависимости внедряются spring-ом. Соответственно, можно написать другие реализации, просто добавив классы в impl и не переписывая остальные классы.
About
Check transactions in file with transactions from db and make report
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published