Spring boot + Hibernate - технические вопросы - PullRequest
0 голосов
/ 03 октября 2019

У меня есть несколько вопросов о Spring Boot и Hibernate.

Я обсуждал с одним разработчиком, и он сказал мне, что он компилирует свой Rest Api, разработанный с помощью Spring Boot, в Jar и использовал сервер tomcat, предоставленный Spring Bootи разверните банку на сервере. Но в моем случае я использую упаковку военных данных и развертываюсь на своем сервере Tomcat, но он сказал, что он менее эффективен.

Я не знаю, почему, и я спрашиваю, разработали ли вы на микросервисах свой Resp Api с загрузкой Spring и используете его решение, вы создаете несколько экземпляров tomcat?

О спящем режиме, яиспользовал HQL для некоторых запросов, и он сказал мне, что это плохо, потому что это опасно с внедрением Sql, это правда?

Мне нужны ответы людей, которые могут посоветовать мне.

Извините, если я говорю по-английски,это не здорово и заранее большое спасибо за ваш ответ.

Ответы [ 2 ]

1 голос
/ 03 октября 2019

В пространстве Java Cloud существует 2 основных направления:

Java EE :

  1. Создание базового образа Docker, включающего приложение Java EE /веб-сервер (например, Tomcat, WildFly, GlassFish, ...)
  2. Создание (тонкого) файла WAR
  3. Создание образа Docker на основе вашего базового образа, который развертывает файл WAR всервер приложений

Spring Boot :

  1. Создание одного файла JAR с помощью плагина Spring Boot Maven
  2. Создание образа Dockerкоторый выполняет файл JAR

Полагаю, вы также можете смешать два подхода (создать WAR-файл Spring Boot), но подход с одним JAR-файлом гораздо более распространен в Spring Boot (сейчас яиспользуя этот подход).

Некоторые эксперты Java EE, такие как Адам Бьен, продвигают первый подход (меньше зависимостей, меньшие файлы WAR, меньшие образы Docker, больше стандартных API (хотя то, что означает «стандартный», в настоящее время меняется спереходот Java EE до Jakarta EE)).

Я не могу сказать вам, какая из них имеет более высокую производительность. В любом случае для каждого образа Docker будет запущен один сервер.

Что касается Hibernate и SQL-инъекций: я использую не HQL, а JPQL, но в конце концов он более или менее такой же, как и в JDBC: неСтрока сцепления запросов с вводом от пользователя. Всегда используйте подготовленные операторы с переменными для форматирования пользовательского ввода.

0 голосов
/ 03 октября 2019

Если вы используете весеннюю загрузку, вы реализуете более или менее автономное приложение (даже если это веб-приложение), поэтому да, будет собственный встроенный tomcat, jetty, какой бы ни был экземпляр для каждого приложения весенней загрузки. SQL-инъекция не имеет ничего общего с тем, как вы развертываете приложение, это только вопрос, как вы создаете свои HQL-запросы.

Однако это интересное обсуждение. В нашей компании мы довольно старомодны и создаем файл WAR нашего веб-приложения и разворачиваем его на нашем сервере Glassfish, где несколько других веб-приложений работают под тем же экземпляром.

Florian

...