• Как сформировать и отправить Principal на React Js в Spring Boot приложение?

    @Akela_wolf
    Extreme Programmer
    React-приложение должно послать те данные, которые нужны спрингу, чтобы сконструировать Principal. Распространенный вариант - JWT-токен. Либо идентификатор сессии. Либо еще что-то, нужно смотреть конкретику как у вас сконфигурирован Spring Security в приложении.
    Ответ написан
    Комментировать
  • Как работают процесс приложения и процесс сервера?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    На одном порту может висеть только один процесс (исключения это внедрение в стек TCP/IP, как это делают фаерволы, но там уже другая история)
    Соответственно или ты запускаешь несколько war приложений внутри сервера приложений tomcat, и разруливаешь их или по портам или по ендпоинтам, но все эти порты принадлежат одному tomcat-у, или каждый спрингбут запускает свой (только вряд ли tomcat имеет смысл в таком случае использовать, проще легковесный jetty), и уже каждый занимает свой порт

    То есть одно приложение может слушать несколько портов.
    Но каждый один порт может слушаться только одним приложением.
    Ответ написан
    3 комментария
  • Как реализовать ReplyToQueue?

    xez
    @xez
    TL Junior Roo
    Вот тут же все написано:
    MQQueue mqQueue = new MQQueue("DEV.QUEUE.1");
            jmsTemplate.convertAndSend(mqQueue, orderCompleted, responseMessage -> {
                responseMessage.setJMSCorrelationID(textMessage.getJMSCorrelationID());
                return responseMessage;
            });

    Есть объявление очереди. Объявите ее так как вам надо.
    Если вам не нужен CorrelationID - не устанавливайте его.

    replyTo - так же можно получить из исходного сообщения:
    Destination destination = textMessage.getJMSReplyTo();
    Ответ написан
    4 комментария
  • Как конфигурировать программу в контейнере снаружи?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    На самом деле вариантов много и ответы можно легко найти, если поискать.
    Вот, несколькие из них:
    Допустим, что вы собираете образ используя Dockerfile. Если вы хотите иметь возможность конфигурировать сам процесс создания image на основе Dockerfile, то посмотрите на такие инструкции, как ARG & ENV. ARG - позволяет определять аргументы на этапе (до создания) image. ENV - environment определяет переменные среды.
    Соответственно, передать эти параметры можно так:
    1) В случае ARG для docker использовать --build-args. В случае ENV использовать -e
    2) В случае использования docker-compose для передачи параметра в Dockerfile использовать environment:
    Например,
    environment:
      - BASE_URL=http://example.com

    3) Если вы хотите передать конфигурацию для application.properties или application.yml извне например, из docker-compose, то можете просто в environment указать нужные конфиги.
    Например,
    environment:
          - spring.application.name=custom_app


    Доп. информация:
    https://stackoverflow.com/questions/46057625/exter...
    https://stackoverflow.com/questions/58695423/pass-...
    https://medium.com/@cybourgeoisie/docker-env-metho...
    Ответ написан
    Комментировать
  • Как составить расписание CRON по конкретным дням месяца?

    Akdmeh
    @Akdmeh
    PHP, Yii2, Music
    Не верно. Это значит, будет исполнятся каждую минуту и час 1, 10, 20, 30 числа.
    Нужно указать два ноля, т.е., 0 0 1,10,20,30 * * command
    Таким образом исполнение будет происходить в 00:00 нужных чисел.
    Существует отличный сервис, в котором расшифровывается значение комманд cron:
    crontab.guru/#0_0_1,10,20,30_*_*
    Ответ написан
    2 комментария
  • Как работать с rest api используя json и пользовательский ввод одновременно?

    @AstraVlad
    Финансист, консультант, программист-любитель
    Это называется: "Написать фронтэнд к имеющемуся бэкенду".

    Делаем html-форму, берем ЖабаСкрипт, пишем обработчик события отправки формы, в нем вместо дефолтного поведения отправляем html-запрос на ваш сервер, где крутится бэк, в ответе получаем данные, генерируем из них таблицу, добавляем ее на страничку. И вуаля: вы фуллстэк разработчик! :).
    Ответ написан
    5 комментариев
  • Как получить данные со стороннего ресурса?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Так как вы работаете со Spring, то посмотрите в сторону RestTemplate
    https://www.baeldung.com/rest-template
    Ответ написан
    Комментировать
  • Что является реализацией PreparedStatement?

    @Kot1que
    пишу на жаве
    Реализации предоставляет JDBC драйвер конкретной базы данных. Пример PostgreSQL

    Делается это для того, чтобы не быть зависимыми от конкретного драйвера БД. Если вы поменяете драйвер на другой (например, смените базу данных), то при использовании интерфейсов ваш код вообще никак не поменяется.
    Ответ написан
    Комментировать
  • Как war файл вернуть в java приложение?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если архив (war-файл) упакован без исходников, то только пройти его обратно декомпилятором. Разархивировать его можно утилитой jar. Собственно он из себя представляет простой zip-архив.
    Декомпилировать можно через java-decompiler.github.io
    Ну и обзор по декомпиляторам https://javahungry.blogspot.com/2018/12/8-best-jav...
    Да, при декомпиляции скорее всего потеряются названия переменных. Но это лучше, чем ничего!
    И да, pom.xml придется нарисовать заново!
    Ответ написан
    1 комментарий
  • Post и Get запросы, какая между ними разница и что лучше и для каких целей?

    socengel
    @socengel
    7 лет native php в продакшене, онлайн 20000+,
    Общего между ними то что они работают одинаково. Разницы между ними технически никакой. А вот идеологические различия есть.

    Я расскажу о них в контексте PHP. Прошу заметить что протокол HTTP к PHP имеет косвенное отношение потому что он создавался для обмена html страницами а PHP просто расширяет возможности и того и другого.

    GET запрос используется чтобы получить данные а POST чтобы отправить. (Напоминаю что технически они работают одинаково).

    Поэтому в контексте PHP опираясь на эту идеологию сделали следующим образом:
    1. При каждом запуске PHP по умолчанию создаются суперглобальные массивы ($_GET, $_POST).
    2. Если в строке запроса есть вопросительный знак(?). То все что после него считается параметрами GET запроса они представлены в формате 'ключ'='значение' и в качестве разделителя используется знак амперсанда (&)
    Пример:
    GET /index.php?name=Андрей&surname=Галкин
    это строка запроса, тут 2 параметра. эти параметры попадут в массив $_GET.
    3. $_POST заполняется другим способом. содержимое этого массива заполняется из "заголовков запроса". То есть из места, скрытого от глаз в явном виде. Всю рутину по созданию таких заголовков берет на себя браузер. Хотя иногда и что-то редактируется в заголовках в ручную.

    Чаще всего пост запрос используется в формах (для отправки данных).

    Например у нас есть форма для входа 2 поля логин и пароль.

    Представим что мы используем GET метод. Тогда при отправке формы мы перейдем на следующий адрес /login.php?login=Андрей&password=123 согласитесь что так передавать такую информацию совсем не безопасно. Любой может открыть ваш браузер и начиная вводить адрес сайта он из истории может увидеть ваши пароли и логины.

    А вот если бы мы указали методом POST то мы бы получили следующий запрос:
    POST /login.php (login=Андрей&password=123) то что в скобочках было бы скрыто и никак не сохранено в браузере.

    Теперь другая ситуация например форма поиска. Мы вводим текст и получаем страницу с результатами. Вот тут уместнее GET форма. потому что нам было бы удобно сразу иметь ссылку на результат поиска, то есть добавить в строку запроса можно выразится "Публичные параметры", которыми можно поделиться. И как результат в строке браузера будет конкретная ссылка на текущую страницу. Мы можем ее скопировать, и разместить где-нибудь, или например скинуть другу. И получить при переходе одну и ту же страницу. А не просить других людей зайти на сайт и в поиск вбить определенную фразу чтобы получить необходимую страницу.

    В общем подводя итог:
    GET - это чтобы получить определенную страницу в определенном виде ( сортировка, текущая страница в блоге, строка поиска и т.п. ).
    POST - для оправки данных которые не влияют на отображение страницы, в том плане что эти данные влияют только на результат выполнения скрипта ( логины, пароли, номера кредиток, сообщения и т.п. ).

    И еще одна хорошая новость их можно комбинировать, например
    POST /index.php?page=login (login=Андрей&password=123) Думаю я уже достаточно объяснил что из этого получится и какие параметры в какой массив попадут.
    Ответ написан
    2 комментария
  • Как правильно сделать авторизацию пользователя на servlet+jsp?

    @Evgeny_13
    1. Написать сервлет, который будет проверять на эдентичность userName и password, например из базы, и писать роль.
    2. Написать фильтр, который будет получать роль авторизировавшегося пользователя и запрещать переход на какие-либо страницы, делать какие-либо действия.
    3. Сделать jsp-страницу, которая будет использовать сервлет и отправлять данные!

    P.S. Не забудь зарегистрировать сервлет и фильтр в web.xml.

    1. b18b5f93b4eb4a0e988cd1e1190c139b.png
    2. a9a8d900d25348edbb04a6670f7dfbd2.png
    3. 2207cda414044a729399b22bef125fe1.png
    Ответ написан
    Комментировать
  • Как запустить web приложение на weblogic?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вот, здесь все очень подробно написано - https://dev64.wordpress.com/2012/03/23/simple-serv...
    В самом конце статьи Вы получаете war-файл - это и есть упакованное web-приложение (веб сервис).
    Разворачиваете ваш файл в weblogic по этой инструкции - https://www.oracle.com/webfolder/technetwork/tutor...
    Ответ написан
    3 комментария
  • Как правильно построить обобщенное иерархическое выражение?

    @ProTreo
    DROP TABLE IF EXISTS #SalaryData
    CREATE TABLE #SalaryData (
      Id INT NOT NULL PRIMARY KEY IDENTITY,
      EmployeeId INT NOT NULL,
      SalaryDate DATETIME CONSTRAINT DF__SalaryData__SalaryDate DEFAULT (GETUTCDATE()),
      Salary DECIMAL(19,4) NOT NULL CONSTRAINT DF__SalaryData__Salary DEFAULT (0.0)
    )
    
    INSERT #SalaryData(EmployeeId, Salary)
    VALUES
    (2, 30000.0),
    (1, 40000.0),
    (5, 40000.0),
    (3, 30000.0),
    (4, 19000.0)
    
    -- Просто выборка по зарплате
    SELECT *
    FROM #SalaryData sd
    ORDER BY sd.Salary DESC
    
    -- Выборка зарплат и сотрудников, у которых зарплата больше чем у целевого сотрудника
    ;WITH CTE AS
    (
      SELECT
        RootEmployeeId = sd.EmployeeId,
        sd.EmployeeId,
        sd.Salary,
        Depth = 0
      FROM #SalaryData sd
    
      UNION ALL
    
      SELECT
        RootEmployeeId = cte.EmployeeId,
        sd.EmployeeId,
        sd.Salary,
        Depth = cte.Depth + 1
      FROM CTE cte
        INNER JOIN #SalaryData sd ON sd.Salary > cte.Salary
    )
    SELECT
      cte.RootEmployeeId,
      STRING_AGG(CONCAT(cte.Salary, ' (', cte.EmployeeId, ')'), ', ') WITHIN GROUP (ORDER BY cte.Salary ASC)
    FROM CTE cte
    WHERE cte.Depth < 2
    GROUP BY cte.RootEmployeeId
    Ответ написан
    Комментировать
  • Почему localhost запрашивает логин и пароль?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    У вас spring boot starter security не настроен! Он по умолчанию на все пароль требует ( по описанию)
    Ответ написан
    Комментировать
  • Как изменить запрос ms sql чтобы работал на postgresql?

    erge
    @erge
    Примус починяю
    а вы доку пробовали смотреть, как добавить default value, constraint, foreign key ?

    ALTER TABLE salary ALTER COLUMN salary_date SET DEFAULT current_date;
    
    ALTER TABLE salary
    ADD CONSTRAINT FK_Salary_Employee_ID FOREIGN KEY(employee_id)
    REFERENCES EMPLOYEE(employee_id)
    ON UPDATE CASCADE
    ON DELETE CASCADE


    Таблица EMPLOYEE разумеется должна существовать, а поле employee_id должно быть уникальным.

    https://dbfiddle.uk/?rdbms=postgres_10&fiddle=238a...
    Ответ написан
    1 комментарий
  • Как подключиться к ms sql sever?

    tsklab
    @tsklab Куратор тега SQL Server
    Здесь отвечаю на вопросы.
    Проверьте включён ли и активирован ли (две настройки) у вас TCP/IP.
    Включить

    5df602e716df2593868212.png

    Активировать

    5df60313da527699377716.png


    а где это можно посмотреть?

    Найти where SQLServerManager*.msc и запустить.

    Команда where SQLServerManager*.msc это и есть поиск. Файл по-умолчанию должен быть в C:\Windows\System32. Должен быть во всех редакциях, отключить установку невозможно.
    Документация.
    И здесь нет?

    5df65d6a2e645065735710.png
    Ответ написан
    2 комментария
  • Как подключиться к ms sql sever?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Тип учетной записи mssql какой? Windows или SQL ?

    jdbc:sqlserver://localhost;instanceName=SQLEXPRESS;DatabaseName=test;integratedSecurity=true
    Ответ написан
    2 комментария
  • Где найти properties от ms sql для конфига?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Используйте встроенную аутентификацию, там пароль не нужен.
    https://github.com/bhochhi/howto-guide/wiki/How-to...

    <bean id="dataSource"	class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
        <property name="url" value="jdbc:sqlserver://host:port;DatabaseName=dbName;integratedSecurity=true" />
     </bean>
    Ответ написан
    4 комментария
  • Как прикрутить UI для Web приложения?

    @UnformedVoid
    Разработчик ПО
    Да, вы правы, вам нужен JS. Советую воспользоваться Vue, так как он прост в использовании и достаточно мощный. В целом последовательность такова:
    Разобраться с JS
    Разобраться с Vue
    Немного разобраться с NodeJS
    Немного погрузиться в Webpack
    Выбрать какой-нибудь готовый набор элементов (например Material Design, можно и свои написать, тогда либо CSS, SCSS, либо TailwindCSS и т.д.)
    Написать SPA
    Объединить с Java бэкендом — тут я не мастер разъяснения давать, так как не специалист по Java. Примерно представляю, что есть два пути:
    1) У Spring есть способ самому отдавать js и css файлы
    2) Можно поднять NodeJS сервер (благо это очень просто) и нужные роуты перенаправлять к нему (возможно через обратный прокси, например Nginx)

    В целом, всё очень легко гуглится. Так что ссылки я сюда громоздкие пихать не буду.

    UPD.
    Разве что вот эту:
    https://www.w3schools.com
    Ответ написан
    2 комментария