Комментарии 5
не Spring’ом единым жив мир Java разработки. но если есть опыт использования, то нескоторые шаги могут упростить разработку и улучшить показатели:
упрощение управления версиями зависимостей
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc</artifactId>
</dependency>
</dependencies>
подготовка thin jar без spring-boot-maven-plugin
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>dependency/</classpathPrefix>
<mainClass>com.company.Application</mainClass> <!-- replace with actual value -->
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
запуск через java -jar app.jar
исключение неиспользуемых зависимостей
если REST сервис отдаёт MediaType.TEXT_PLAIN_VALUE, то Jackson можно исключить
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc</artifactId>
<version>${spring-boot.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jackson</artifactId>
</exclusion>
</exclusions>
</dependency>
Согласен, там есть очевидные пути уменьшения размера результирующего .jar или повышения производительности эндпоинта метрик путём отделения предметных метрик от системных. Но это пойдёт вразрез с сутью образовавшегося эксперимента - нагружать "Малинку" java-bloat'ом от максимально просто/прямолинейно сделанного приложения на текущем технологическом уровне.
Я думал что моя 4-я ревизия старая. А тут ещё старше и тоже живая!
Малинка с 512 оперативы просто читает датчик температуры и Ты этим хвалишься? Мир сошел с ума... Там бы хватило копееечной ардулинки, разве что для вайфаев нужно бы было что-то немного другое. На малинке нормально крутится хоме асистанс с блекджеком и дивами...
Любопытно, в каком конкретном месте статьи и в каких именно речевых оборотах вы углядели ваше "и Ты этим хвалишься?"?
Что касается упомянутой вами "копееечной ардулинки": связь по Wi-Fi и предоставление текущих значений на веб-странице для просмотра из нескольких браузеров были исходными требованиями. Вспомните, что было доступно весной 2013-го года и можете придумывать своё решение на "ардулинки".
Задача никогда не подразумевала тиражирование, на котором можно было бы вести речь о хоть какой-то "экономике процесса". Подозреваю, что одно только изучение темы "устройств попроще", не говоря уже про разный tooling, написание и отладку, прямо в самом начале потребовали бы времени в разы больше, чем всё время, потраченное мной на все стадии этого "проекта".

Java 21 в стиле «клятый энтерпрайз» на одноплатном компьютере возрастом 13 лет