Перейти до основного вмісту

Публікації

Показано дописи з міткою "програмування"

Робота SpringBoot 3 з базою даних Redis

Redis Redis (Remote Dictionary Server) — це in-memory база даних ключ-значення з відкритим вихідним кодом, що використовується для зберігання структурованих даних. Вона підтримує різні типи даних, такі як рядки, списки, множини, упорядковані множини з діапазонами, хеші, бітові масиви, потоки і т. д. Redis широко використовується для кешування, управління сесіями, систем обміну повідомленнями, черг задач та інших сценаріїв, що вимагають високої продуктивності і низької затримки. Redis з SpringBoot Розглянемо простий проєкт на SpringBoot, що використовує Redis, як базу даних. Створимо такий проєкт: Створимо entity Cat: import lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.redis.core.RedisHash; @Data @RedisHash("cat") public class Cat { @Id private String id; private String name; private Integer age; public Cat(String name, Integer age) { this.name = name; this.age = age; } } Звер...

Spring Boot Actuator

Actuator в Spring Boot - це бібліотека, яке надає різноманітну інформацію про стан вашого застосунку і його компонентів. Він дозволяє легко моніторити застосунок в режимі реального часу. Основні можливості actuator включають: Стан застосунку (/actuator/health): Цей ендпоінт повертає інформацію про стан застосунку. Це може бути корисно для моніторингу системи та виявлення будь-яких проблем. Інформація про стан містить загальну інформацію про стан. Інформація про середовище (/actuator/env): Цей ендпоінт надає доступ до інформації про середовище, в якому працює ваш застосунок. Ви можете отримати доступ до системних властивостей, змінних середовища, налаштувань ініціалізації та іншої важливої інформації. Метрики (/actuator/metrics): Цей ендпоінт надає статистику про різні показники застосунку, такі як кількість HTTP-запитів, використання пам'яті, кількість з'єднань з базою даних, час відповіді тощо. Ви можете використовувати ці метрики для аналізу продуктивності вашог...

Проблема при запуску Liquibase на Digital Ocean та її вирішення

Нещодавно зустрівся з такою проблемою: SpringBoot-проєкт не запустився на сервері через проблему пов’язану з Liquibase. Детальніше про проєкт Сам проєкт повністю написаний на SpringBoot, база даних на MySQL, міграція здійснюється за допомогою Liquibase. Проєкт відносно невеликий і локально запускався і працював без проблем. Але при запуску на продакт-сервері отримувалася помилка: ERROR org.springframework.boot.SpringApplication [main] Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is liquibase.exception.DatabaseException: Unable to create or change a table without a primary key, when the system variable 'sql_require_primary_key' is set. Add a primary key to the table or unset this variable to avoid this me...

Знайомство з фреймворком Quarkus

Quarkus Quarkus - реактивний java-фреймворк, який підтримує GraalVM. Розглянемо створення стартового застосунку на Quarkus в операційній системі Ubuntu (для інших версій Linux команди будуть такими ж, для Windows можуть бути невеликі відмінності). Підготовка На машині має бути встановлений Maven. Перевірити це можна за допомогою команди: mvn --version Встановити Maven можна, використавши наступну команду: sudo apt install maven Створення стартового проєкту В потрібній директорії запустити в командному рядку код: mvn io.quarkus.platform:quarkus-maven-plugin:2.11.2.Final:create \ -DprojectGroupId=org.acme \ -DprojectArtifactId=getting-started \ -Dextensions="resteasy-reactive" cd getting-started Буде створений стартовий проєкт. Цеq проєкт можна відкрити за домогою улюбленого IDE. Не рахуючи тестів, у цьому проєкті є лише один java-клас: package org.acme; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs...

Оператор CNOT в квантовому програмуванні

CNOT Оператор (вентиль, гейт) CNOT приймає 2 входи і 2 виходи. Цей вентиль називають контрольованим запереченням (Controlled NOT). CNOT інвертує другий (керований) кубіт тільки, якщо на перший (керуючий) кубіт подано 1: До Після Керуючий кубіт Керований кубіт Керуючий кубіт Керований кубіт 0 0 0 0 0 1 0 1 1 0 1 1 1 1 1 0 Робота оператора схожа на оператор XOR, якщо не враховувати перший біт на виході: XOR Вхід 1 Вхід 2 Виіхід 0 0 0 0 1 1 1 0 1 1 1 0 Приклад реалізації в Strange Program program = new Program(8); Step step0=new Step(); Step step1=new Step(); step0.addGate(new X(3)); step0.addGate(new X(4)); step0.addGate(new X(6)); step0.addGate(new X(7)); step1.addGate(new Cnot(0,1)); step1.addGate(new Cnot(2,3)); step1.addGate(new Cnot(4,5)); step1.addGate(new Cnot(6,7)); program.addStep(step0); program.addStep(step1); QuantumExecutionEnvironment qee = new SimpleQuantumExecutionEnvironment(); Result result = qee.run...

Квантове програмування в Java

Strange Strange - бібліотека для емуляції квантових обчислень на Java. Бібліотека також дозволяє досить просто візуалізувати написану квантову програму за допомогою JavaFX. Підключення бібліотеки При використанні Maven це можна зробити, додавши залежність: org.redfx strange 0.1.3 Написання простої програми Приклад простої програми, код можна помістити прямо в метод main() : Program program = new Program(3); Step s0 = new Step(); s0.addGate(new X(0)); Step s1 =new Step(); s1.addGate(new Hadamard(2)); program.addStep(s0); program.addStep(s1); QuantumExecutionEnvironment qee = new SimpleQuantumExecutionEnvironment(); Result result = qee.runProgram(program); Qubit[] qubits = result.getQubits(); for (Qubit qubit:qubits){ System.out.println(qubit.measure()); } Після запуску програма має видати результат 1 0 0 або 1 0 1 Пояснення програми Створення програми, що буде оперувати 3-ма кубітами: Program program =...