-
Notifications
You must be signed in to change notification settings - Fork 2
Settings
Roman Kuzmin edited this page Feb 17, 2025
·
6 revisions
Файл application.properties содержит основные настройки сервиса StarBank.
Здесь определены параметры подключения к базам данных, кеширование, логирование и интеграция с Telegram Bot.
spring.application.name=starbankОпределяет имя приложения Spring Boot.
Используется для хранения транзакций пользователей.
application.recommendations-db.url=${h2.datasource.url:jdbc:h2:file:./transaction;DB_CLOSE_DELAY=-1;ACCESS_MODE_DATA=r}-
DB_CLOSE_DELAY=-1– база не закрывается при завершении сессии. -
ACCESS_MODE_DATA=r– доступ только на чтение.
Используется для хранения динамических правил и статистики.
spring.datasource.url=${postgres-url:jdbc:postgresql://localhost:5432/starbank}
spring.datasource.username=${postgres-login}
spring.datasource.password=${postgres-passwd}
spring.datasource.driver-class-name=org.postgresql.Driver-
spring.datasource.url– JDBC URL для подключения к PostgreSQL. -
spring.datasource.usernameиspring.datasource.password– учетные данные. -
driver-class-name– драйвер PostgreSQL.
Эти переменные можно задать через VM-параметры при запуске приложения:
-Dpostgres-url=jdbc:postgresql://localhost:5432/starbank
-Dpostgres-login=postgres
-Dpostgres-passwd=mysecretpasswordДругие способы передачи параметров:
-
Через переменные окружения
export POSTGRES_URL=jdbc:postgresql://localhost:5432/starbank export POSTGRES_LOGIN=postgres export POSTGRES_PASSWD=mysecretpassword
-
Через аргументы командной строки
java -jar starbank.jar --postgres-url=jdbc:postgresql://localhost:5432/starbank --postgres-login=postgres --postgres-passwd=mysecretpassword
spring.jpa.hibernate.ddl-auto=validate
spring.jpa.properties.hibernate.jdbc.batch_size=20
spring.jpa.properties.hibernate.order_updates=true
spring.jpa.properties.hibernate.order_inserts=true-
ddl-auto=validate– схема БД проверяется, но не изменяется автоматически. -
batch_size=20– увеличивает производительность за счет пакетных обновлений. -
order_updates/order_inserts– группировка SQL-операций для оптимизации.
spring.liquibase.enabled=true
spring.liquibase.change-log=classpath:db/changelog/db.changelog-master.xml
spring.liquibase.contexts=prod-
liquibase.enabled=true– включает автоматическое применение миграций. -
change-log– путь к файлу миграций. -
contexts=prod– применяет изменения только в production-контексте.
spring.cache.type=caffeineИспользуется для кеширования данных в памяти, что ускоряет выполнение повторяющихся запросов.
logging.level.com.skypro.starbank=DEBUG
#logging.level.liquibase=DEBUG-
logging.level.com.skypro.starbank=DEBUG– включает подробные логи работы приложения. -
logging.level.liquibase=DEBUG– можно включить для отладки миграций.
telegram.bot.username=${telegram-botname}
telegram.bot.token=${telegram-token}
telegram.bot.default-command=${telegram-default-command:help}-
telegram.bot.username– имя Telegram-бота. -
telegram.bot.token– токен доступа. -
telegram.bot.default-command– команда по умолчанию (по умолчаниюhelp).
Файл pom.xml содержит зависимости и плагины, необходимые для работы проекта.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.2.224</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>3.1.8</version>
</dependency>
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>6.9.7.1</version>
</dependency>
</dependencies><build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>Теперь pom.xml полностью готов для работы с Spring Boot, PostgreSQL, H2, Liquibase, Caffeine Cache и Telegram API.