Ответы пользователя по тегу Java
  • Intellij IDEA перестала видить JAVA, как исправить?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Не смотрели случайно? - https://stackoverflow.com/questions/29286714/intel...
    Ответ написан
    Комментировать
  • При вычислении объёма выдает ошибку.В чем ошибка?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Метод Set_Volume
    public  void Set_Volume(double Weight){
                ODD_Volume =  Weight;
    }

    принимает тип double.

    dmitriy.Set_Volume();
    Здесь, вам надо передать методу Set_Volume() тип double
    Ответ написан
    Комментировать
  • Каким образом можно получить куки после прогрузки js на сайте без видимого браузера?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    P.s. браузер желательно имитировать невидимым.

    Это называется headless режим
    Вы можете например, взять selenium + любой браузер по вашему вкусу (firefx, chrome и др.) и запустить их в headless режиме.
    А насчет получения кукис с использованием Seleinum - https://www.guru99.com/handling-cookies-selenium-w...
    Ответ написан
    Комментировать
  • Как в Selenium работать с несколькими элементами?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Информации предоставили мало... но можно сделать следующее:
    использовать цикл... Например, взять массив String{} или LIst<String>
    А дальше примерно такой код:
    String [] keys = {"key1","key2","key3"};
    for (Sting key : keys) {
    WebElement searchForm = selenium.findElement(By.xpath("//input[@name='searchable']"));
    searchForm.sendKeys(key);
    searchForm.submit();
    }
    Ответ написан
    Комментировать
  • Как запустить свое android приложение в эмуляторе?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Установите программу GenyMotion. Она работает на основе virtualbox и довольно шустро. Также вы можете запускать приложение из android studio или собрать apk и перетащить его на экран genymotion и он установит
    Ответ написан
    2 комментария
  • Как получить куки установленные через JavaScript?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Вы можете получить массив из кукис и пройтись по нему. И для этого нужно использовать не HttpsURLConnection, а HttpServletRequest request из пакета - javax.servlet.http.HttpServletRequest;
    https://stackoverflow.com/questions/22804409/get-c...
    Cookie[] cookies = request.getCookies();
    
    if (cookies != null) {
     for (Cookie cookie : cookies) {
       if (cookie.getName().equals("cookieName")) {
         //do something
         //value can be retrieved using #cookie.getValue()
        }
      }
    }


    Если вы используете Spring, то можно и по другому:
    https://viralpatel.net/blogs/spring-mvc-cookie-example/
    @CookieValue("foo") String fooCookie
    Ответ написан
  • Как сохранить Java обьект с полем типа Enum?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Вот, мой пример:

    public class User {
    @ElementCollection(targetClass = Role.class, fetch = FetchType.EAGER)
        @CollectionTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"))
        @Enumerated(EnumType.STRING)
        private Set<Role> roles;
    }


    public enum Role {
        AUTHOR,
        CUSTOMER,
        ADMIN
    }
    Ответ написан
  • Связи entity в JPA. Возможны ли две сущности для одной таблицы?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Я относительно недавно начал изучать Spring Boot. И самому тоже интересно. А так я решил этот вопрос следующим образом. В моем случае это 3 Entity - User, Customer, Author.

    @Entity
    @Data
    @Table(name = "users")
    @Inheritance(
            strategy = InheritanceType.JOINED
    )
    public class User {
    	@Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long userId;
        private String userEmail;
        private String userPassword;
        // getters setters etc.
    }
    
    
    @Entity
    @Getter @Setter
    @Table(name = "customers")
    public class Customer extends User {
    	private String customerData;
    }
    
    
    @Entity
    @Getter @Setter
    @Table(name = "authors")
    public class Author extends User {
    	private String authorData;
    }


    И в таком случае, вы получите 3 таблицы. Одна общая - User + 2 таблицы для Customer & Author, в которых будет ID из Entity User + доп. поля из дочерних таблиц. Вы это имели ввиду?
    Ответ написан
  • Сервер на Java для Wordpress?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Я и сам сейчас занимаюсь небольшого проекта на Spring Boot + WordPress REST API.
    Если вам нужен сайт быстро на Java, то лучше Spring Boot лучший выбор. За месяц с изучением Spring Boot реально создать сайт.
    https://www.youtube.com/watch?v=jH17YkBTpI4&list=P...

    Что касается ВП, то вот, следующие библиотеки вам помогут
    https://github.com/Afrozaar/wp-api-v2-client-java
    https://github.com/Afrozaar/wp-api-v2-client-java-...

    Или можно даже создать сайт на ВП, а статьи добавлять из Java. А вот, переиспользовать ВП шаблоны не получится. Для Spring Boot можете подключить что-нибудь из шаблонизаторов. Например, thymeleaf
    Ответ написан
    Комментировать
  • JSOUP: Как копировать картинки с сайта в БД?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Насчет хранения картинок. Вы можете хранить в БД пути к картинкам, а сами файлы хранить в папке. Другой вариант при сохранении кодировать картинку в blob сразу в БД. Первый метод предпочтительнее, если файлов будет много.
    Что касается парсинга, то тут ничего нового и нет... Парсите данные при парсинге циклом пробегаетесь по списку ссылок с картинками, создайте файлы и пишете в нужную директорию или сразу в blob.
    Ответ написан
  • Как делается backend на Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Смотря на каком языке вам удобно кодить конечно же... И на рнр возможно, быстрее получится. Но если в целом владеете java, то можно создать бэкэнд на Spring Boot.
    Мне например, хватило примерно месяца, чтобы на основе этого видеоурока создать небольшой сайт.
    https://www.youtube.com/playlist?list=PLU2ftbIeotG...
    Но разумеется, что изучить полноценно Spring невозможно за месяц и многое придется осваивать еще очень долго...
    Ответ написан
    Комментировать
  • На сколько надо знать жаву чтобы начать кодить на андроид студио?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Должны ли вы глубоко изучить java, чтобы стать андроид разработчиком? Да, однозначно! Оф. языки android - kotlin (однако, до сих пор большинство библиотек на java). А как вы планируете разрабатывать приложения не владея языком?

    Насколько хорошо нужно владеть java, чтобы писать андроид приложения? Ну Java SE для начала хватит.
    Что минимального нужно, чтобы начать писать хоть какие-то адекватные приложения (по своему опыту):
    - прочитайте какую-нибудь книгу по java. Например, Head FIrst или Java для начинающих
    - посмотрите эти видеоматериалы по java https://www.youtube.com/watch?v=uXMTq81jG7Y&list=P...
    - посмотрите эти видеоматериалы по android - https://www.youtube.com/watch?v=ac8y518CIng&list=P...

    А если речь идет о серьезном проф. образовании, то можно и на курсы записаться по java + android.
    Ответ написан
    Комментировать
  • Стоит ли возвращать ROLE пользователя с backend после логина?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Нет необходимости.
    Если речь идет о Spring, то вы наверняка, используете Spring Security.
    Соответственно, смотрите в сторону hasAuthority() hasRole() @PreAuthorize() (необходимо его для начала "включить"). Используя @PreAuthorize вы можете ограничивать доступ на уровне класса контроллера или метода.
    Также вы можете проверять права юзера в шаблоне, если используете шаблонизаторы типа thymeleaf, freemarker, mustache. Надо будет только подключить дополнения. Например, thymeleafExtras

    Кукис конечно является решением, но проблема в том, что ее можно отредактировать. А соответственно, юзер может получить доступ к админ правам... Так что... лучше этого не делать.
    Ответ написан
    2 комментария
  • Почему Spring Boot не загружает application.yml?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Если вы работаете в Intellij IDEA, то проверьте в настройках проекта правильно ли добавлен этот файл.
    5c713a0cb8798831136890.png

    У меня совсем другая, но похожая ситуация была. Когда я создавал файл в intellij IDEA и выбирал yml || properties, оказывается он автоматически не добавлял нужный формат к названию файла. Так у меня получались файлы с названием application-dev вместо application-dev.properties
    Ответ написан
    Комментировать
  • Не могу понять: как использовать геттеры и сеттеры?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Я и сам, когда совсем недавно начинал не мог разобраться с геттерами, сеттерами и конструкторами и со многими другими понятиями. Вам правильно подсказали, что необходимо прочитать несколько книг.
    Что касается геттеров и сеттеров, то вот, объяснение от новичка)))
    Как понятно из название геттеры от слова Get (получить), а сеттеры от слова Set (задавать). Прибегать к геттерам и сеттерам стоит в ООП, а с учетом того, что java является типизированным языком и использует парадигму ООП, то геттеры и сеттеры активно используются в ней.
    Зачем они нужны? Для этого вам необходимо изучить инкапсуляцию, модификаторы доступа и т.д. Например, если вы установите модификатор доступа private для примитивного типа, то этот примитивный тип не будет доступен из других классов. А что делать, если вам надо получить значение этого типа или наоборот, задать значение этому примитиву? Тогда прибегаем к геттерам и сеттерам. Создаем нужные геттеры и сеттеры в классе, где находится этот примитив и соответственно, создав новый instance этого класса в другом классе из которого хотим достучаться до нашего примитива можем использовать геттер или сеттер.
    Если вы исопльзуете какой-либо IDE (в частности Intellij IDEA), то в нем есть возможность генерировать геттеры и сеттеры. Можно также подключить библиотеку Lombok, которая сама "создает" геттеры и сеттеры при компиляции. Но на начальных этапах лучше создавать вручную, дабы понять их структуру и их предназначение.
    Ответ написан
    2 комментария
  • Программирование на Java для детей, родителей, бабушек и дедушек, что в этой книге устарело?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Если нужна книга на примитивном и доступном языке, то прочитайте - Head First Java (правда, много воды, но для новичков самое то)
    А так вот, еще список - https://javarush.ru/groups/posts/511-top-7-knig-po...
    Если хотите поменьше воды, то Г. Шилдт - Руководство для начинающих

    Также видеоуроки - https://www.youtube.com/watch?v=uXMTq81jG7Y&list=P...
    Также онлайн-уроки - https://stepik.org/course/187 или на udemy.com
    Ответ написан
    Комментировать
  • Почему netBeans требует что бы я преобразовал цепочку операторов if в оператор switch?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    IDE не требует, а лишь рекомедует использовать switch case.
    Так как у вас в данном случае задается правило для одной переменной char, то вы можете упростить читабельность вашего кода при помощи switch case.
    Ответ написан
    Комментировать
  • Как поступить чтобы проще понять java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Смысл после изучения C# изучить java. Как по мне этого будет достаточно. Вы можете начать с любого языка. Я например, начал с Java, Правда, до этого у меня были базовые знания по php, html, css, js.
    Если бы вам был интересен веб, то можно было бы начать с рнр, так как там низкий порог вхождения.
    Что касается изучения java, то в первую очередь вам нужно иметь теоретические знания. Дальше научитесь применять эти знания на практике. Например, ставьте простые задачи перед собой и реализуйте их или например, найдите задачки по программированию и напишите свой код для их решения. Немалый результат показывает изучение чужого кода, так вы сможете понять логику программирования. На открытых источниках github.com || bitbucket.com найдите простые программки и проанализируйте их, привыкните к синтаксису.

    Есть например, книга Java для начинающих. В книге вы пошагово научитесь создавать игру морской бой, драм машину и другие простые программы. И постепенно ставьте более сложные задачи. При возникновении вопросов или ошибок ищите решение на stackoverflow. При должном поиске вы найдете решение примерно в более 90% случаев.

    Можете конечно взять курсы на stepik.org или на udemy.com, но я по своему опыту (я и сам в кой-то мере новичок), могу сказать, что вам нужно иметь базовые знания, чтобы потом пройти курсы и понять их смысл, потому как некоторые курсы хоть и нацелены на новичков, но усложнены отсутствием теории

    Вот, неплохие курсы по java.
    Правда, теории мало, так как человек делится своими мыслями, но довольно неплохо.
    https://www.youtube.com/watch?v=uXMTq81jG7Y&list=P...
    Тоже неплохой курс
    https://www.youtube.com/watch?v=_jXDPfUKm58&list=P...

    А теперь, самый главный вопрос - выбор языка и цель которую вы хотите достичь в программировании.
    Вы говорите, что прочитали пару книг и поняли, что не хотите заниматься вебом, а хотите заниматься разработкой десктопных приложений на java. Поделюсь своим мнением... java не самое лучшее решение для десктопа и для игр. Да, технически вы можете создать какое-нибудь javafx, swing приложение на java. Но эти технологии со временем устаревают. Можно изучить фреймворк Spring и создавать десктопные приложения на нем. Другое дело, что вы будете декстопные приложения писать на C#. А для игр например.создан фрейм Unity3d, который поддерживает C# (java не поддерживается). Java используется в энтерпрайзе. Соответсвенно, знание Java EE желательно.
    Можно конечно поизвращаться и написать десктопное приложение на java используя различные транспайлеры типа JSweet, который будет конвертировать ваш java код в javascript код и используя фреймворк ElectronJS написать десктопное приложение. Но как по мне легче изучить тогда Vanilla JS и писать сразу на нем, чем извращаться на java кодом)) Ну и java не подойдет для написания драйверов и т.д. Зато java & kotlin широко используются в мобильном программировании.
    Ответ написан
    2 комментария
  • Как сделать авторизацию с тремя параметрами?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Я например, когда реализую это на Spring, то на стадии авторизации выбираю активных пользователей с нужными правами и нахожу юзера по email.
    Код, который я использую для Spring

    @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
          auth.jdbcAuthentication()
                  .dataSource(dataSource)
                  .passwordEncoder(passwordEncoder())
                  .usersByUsernameQuery("SELECT user_email, user_password, user_active FROM users WHERE user_email=?")
                  .authoritiesByUsernameQuery("SELECT u.user_email, ur.roles FROM users u INNER JOIN user_roles ur ON u.user_id=ur.user_id WHERE user_email=?");
        }
    Ответ написан
    Комментировать