Задать вопрос
  • VIM может заменить IDE?

    @Vorh
    Для IDE-й от JetBrains есть плагин который включает Vim-режимы и раскладку.

    А использовать IDE или нет - зависит от вас или от политики в компании.
    Если вы сможете писать код не теряя производительности и не принося не удобства другим членам команды , то пожалуйста пишите.
    Ответ написан
    Комментировать
  • Как реализовать логирование JDBC?

    @Vorh
    Можно использовать datasource-proxy
    Он позволяет логгировать все запросы, а так же если это не нужно, настроить логгирование только для "тяжелых запросов", которые выполняются больше n секунд по времени.
    Запись в логе выглядит так:

    Name:MyDS, Time:1, Success:True, Type:Statement, Batch:False, QuerySize:1, BatchSize:0, Query:["CREATE TABLE users (id INT, name VARCHAR(20))"], Params:[]
    Name:MyDS, Time:0, Success:True, Type:Prepared, Batch:True, QuerySize:1, BatchSize:2, Query:["INSERT INTO users (id, name) VALUES (?, ?)"], Params:[(1=1,2=foo),(1=2,2=bar)]
    Name:MyDS, Time:1, Success:True, Type:Prepared, Batch:True, QuerySize:1, BatchSize:2, Query:["INSERT INTO users (id, name) VALUES (?, ?)"], Params:[(1=3,2=FOO),(1=4,2=BAR)]
    Name:MyDS, Time:3, Success:True, Type:Statement, Batch:False, QuerySize:1, BatchSize:0, Query:["SELECT COUNT(*) FROM users"], Params:[]


    Примеры конфигураций и настройки можно посмотреть вот здесь

    Простой пример конфигурации :
    DataSource db = ProxyDataSourceBuilder
                .create(actualDataSource)
                .logQueryByCommons(INFO)    // or logQueryBySlf4j(INFO)
                .build();
    Ответ написан
    Комментировать
  • Java junior должен знать regex?

    @Vorh
    Понимать базис - да ,но целеноправленно тренироваться в написание регулярок не нужно - во время работы они встречаются не так часто и обычно хватает уже существующих (валидация для email,номера телефона,ip и т.д. ) - а если появится потребность в чем другом - к тому времени у вас уже будет хоть какой то опыт и разобраться будет значительно легче.
    На этапе обучения лучше уделить время другим вещам
    Ответ написан
    Комментировать
  • Где найти опыт работы для новичка в программировании на Java?

    @Vorh
    Есть отличное видео с jPoint на тему как студенту или новичку в программирование "попасть" в OpenSource.
    Ответ написан
    2 комментария
  • Как сгенерировать случайное число с разными цифрами?

    @Vorh
    Использовать Random для получения случайного числа
    Random random = new Random();
    int result = random.nextInt(1000); // Генерация случайного числа от 0 до 1000
    System.out.println(result);
    result = 9 + random.nextInt(9) // Генерация случайного 9 значного числа, где каждая цифра можешь иметь значение от 0 до  9
    System.out.println(result);
    Ответ написан
    Комментировать
  • Где посмотреть чего состоит IDE Intellij Idea?

    @Vorh
    Есть цикл статей в котором рассматривается краткая структура и особенности работы не которых фич (индексация, синтаксический анализ, лексического анализатор и т.д.) , помимо этого дается краткое описание других частей Intellij idea и написание собственного плагина на основе их.
    Ознакомиться можно тут
    Как стартовой вариант самое то - а дальше просто скачиваем исходники и читаем.

    Полноценного туториала по кишкам не разу в ру, не в англ кластере не видел, да и сомневаюсь что таковой существует.
    Есть еще сайтик со списком api тут , но это просто копипаст из исходников , хотя поначалу посматривать стоит.

    В рунете если погуглить можно найти еще несколько статеек на тему написания собственного плагина , но они дают только основы ,а за более подробным описание все равно приходится лезть в исходники.
    Написать простенький плагин не составит труда , по мере работы и копания приходит постепенное понимание как это все работает.
    Ответ написан
    Комментировать
  • Что использовать, чтобы можно было навести курсор мыши на слово??

    @Vorh
    Swing
    JLabel tooltipLabel = new JLabel("Username");
    tooltipLabel.setToolTipText("Enter your username");
        
    JTextField tooltipTextfield = new JTextField(10);
    tooltipTextfield.setToolTipText("Enter your username over here, that other thing is a label.");

    В JavaFX используя Tooltip
    PasswordField pf = new PasswordField();
    Tooltip tooltip = new Tooltip();
    tooltip.setText(
       "Your text");
    pf.setTooltip(tooltip);
    Ответ написан
  • Как написать web-интерфейс для Java сервера?

    @Vorh
    1) Админку в дальнейшем собираетесь развивать ?
    Если да то лучше , разделить frontend и backend стороны на разные проекты , для frontend заюзать какой нибудь популярный JS фреймворк наподобие Angular,2 , React и etc , который позволит удобно разрабатывать новый функционал и работать с вашим сервером через rest
    2) Если вам нужно быстро и с минимум затрат , то генерируйте по нужному запросу jsp шаблон и отдавайте его , не забудь про безопасность и прикрутите простенькую авторизацию через Spring Security например

    UPD:
    Как отдать html ?
    1) Java Servlet
    public class SimpleServlet extends HttpServlet {
        public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
     RequestDispatcher view = req.getRequestDispatcher("/path/to/file.html");
            view.forward(req, resp);    
        }
    }

    2) Rapidoid
    On.get("/main").html((Req req) -> {
        Resp resp = req.response();
        resp.contentType(MediaType.HTML_UTF_8);
        resp.result('Main.html');
        return resp;
    });

    3) Spring
    Можно обернуть один раз в JSP и отдать его
    @RequestMapping(value = "/main", method = RequestMethod.GET)
    public ModelAndView getMain()
        ModelAndView modelAndview   = new ModelAndView("success.jsp");
        return modelAndView;
    }
    Ответ написан
    8 комментариев
  • Как начать работу программистом Java?

    @Vorh
    JavaSE, SQL, Servlets - уметь написать простое CRUD web application с применением этих технологий

    Это минимальный список нужных технологий , по край не мере для Москвы - прошлым летом когда устраивался на работу на всех собеседованиях и в тестовых заданиях были такие требования.
    Плюсом еще будет Spring , ну и естественно HTML, CSS, JS

    Еще трубеют знания английского на уровне чтения тех литераты - спорный пункт , у меня его не где не проверяли - на момент начала работы с трудом мог прочитать предложение по английскому - в процессе работы подтянул на "средний" уровень - статьи , книги читаю ,но приходится иногда переводить не знакомы слова.
    Ответ написан
    Комментировать
  • Как работает Angular2 и Java?

    @Vorh
    Вот пример как на Angular2 общаться через REST
    GET запрос на бекэнд:
    getList(): Promise<Data[]> {
        return this.http.get(Ваш url + '/getData')
          .toPromise()
          .then(response => 
          response.json().data as Data[]);
      }

    Более подробно можно прочитать тут : Angular2 HTTP
    Java Spring Controller который обрабатывает запрос и возвращает запрашиваемые данные:
    @RequestMapping(name = "/getData")
        public List<Data> getListData(){
            List<Data> list = new ArrayList<>();
            list.add( new Data());
            list.add( new Data());
            list.add( new Data());
            list.add( new Data());
            return list;
        }

    Если собираетесь разбираться со Spring - то тут я выкладывал список полезных ресурсов для обучения
    Ответ написан
    Комментировать
  • Есть хорошие книги по java EE и Spring??

    @Vorh
    1) Spring in Action 4 - на русском увы нету ,но это не такая большая проблема и отличная возможность подтянуть технический английский
    2) Spring in Action 3 - думаю по цифре понятно ,что она не совсем актуальна ,но за то есть на русском языке
    3) websystique.com - один из лучших сайтов в сети по туториалам Spring , содержит огромное количество статей где по этапно показано как конфигурировать Spring и написать простое приложение - часто сам на него заглядывал
    4) www.mkyong.com - то же самое, что и выше - огромное количество статей
    Ответ написан
    Комментировать
  • Как в Java подключить зависимости из git репозитория?

    @Vorh
    1)Создаешь Maven проект
    2)Открываешь файл pom.xml

    По умолчанию содержание файла примерно такое:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    
    	<groupId>ru.test</groupId>
    	<artifactId>test.a</artifactId>
    	<packaging>war</packaging>
    	<version>1</version>
    	<name>name-project</name>
    
    </project>


    3) Добавляем репозиторий
    <repository>
          <id>jitpack.io</id>
          <url>https://jitpack.io</url>
    </repository>

    4) Добавляем зависимость
    <dependency>
        <groupId>com.github.User</groupId>
        <artifactId>Repo name</artifactId>
        <version>Release tag</version>
    </dependency>


    В итоге полное содержание pom-ника :
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>ru.test</groupId>
        <artifactId>test.a</artifactId>
        <packaging>war</packaging>
        <version>1</version>
        <name>name-project</name>
    
        <repositories>
               <repository>
                   <id>jitpack.io</id>
                   <url>https://jitpack.io</url>
               </repository>
        </repositories>
    
        <dependencies>
            <dependency>
                <groupId>com.github.User</groupId>
                <artifactId>Repo name</artifactId>
                <version>Release tag</version>
            </dependency>
        </dependencies>
    </project>
    Ответ написан
    5 комментариев
  • Актуальная книга по паттернам проектирования для джависта?

    @Vorh
    Первый вариант ,как уже упоминали товарищи выше, можно попробовать начать с Design Patterns Банды Четырёх ,но примеры показанные в ней для меня были не совсем понятны ,так как я не работал не с каким другим языком кроме Java

    Второй вариант Head First Design Patterns - простым, общедоступным языком объясняются основные паттерны с примерами на Java

    Третий вариант ,но только если вы собираетесь работать конкретно c JavaEE то книга Java EE. Паттерны проектирования для профессионалов
    Ответ написан
    Комментировать
  • Есть хорошие библиотеки про CSS?

    @Vorh
    Первая ссылка в гугле на фреймворки.
    Так же для увелечения скорости и качества разработки можно еще выучить какой-либо препроцессор:
    1) LESS
    2) SASS
    Ответ написан
    Комментировать
  • Как организовать передачу данных с сервера(java) на view?

    @Vorh
    Поработаю гуглом для вас : Spring Security form login using database
    Ответ написан
    Комментировать
  • Стоит изучать java с книги Герберта Шилдта "Java 8 полное руководство"?

    @Vorh
    Как упомянул Eugene Aristarhov Шилда, Блоха и Хорстманна оставить на справочники. Эккеля можно , нужно прочитать потом, а для обучения я бы посоветовал Head First Java Кэти Сиерра, Берт Бейт - для новичка самое то основы Java объясняются довольно хорошо
    Ответ написан
    2 комментария
  • Java в командной строке windows 7, как сделать?

    @Vorh
    Самый простой вариант:

    try {
        // Execute command
        String command = "cmd /c start cmd.exe";
        Process child = Runtime.getRuntime().exec(command);
    
        // Get output stream to write from it
        OutputStream out = child.getOutputStream();
    
        out.write("cd C:/ /r/n".getBytes());
        out.flush();
        out.write("dir /r/n".getBytes());
        out.close();
    } catch (IOException e) {
    }
    Ответ написан
    Комментировать
  • Почему не работает [Геттеры и сеттеры]?

    @Vorh
    Что отлавливать такие ошибки используйте режим отладки:
    private void changeMyIPAdress(String IP)
        {
            this.IP = rand.nextInt(200)+"."+rand.nextInt(200)+"."+rand.nextInt(200)+rand.nextInt(200);
            Client.setIP(IP); // Client.set(this.IP);
        }
    Ответ написан
    Комментировать
  • Как получить весь консольный вывод в переменную по завершению работы?

    @Vorh
    Самый простой вариант при запуске указать файл в который будет выводиться вся информация выводимая программой :
    java ClassName > a.txt
    Или настроить вывод в коде:
    System.setOut(new PrintStream(new FileOutputStream(fileName)));

    Но гораздо лучше выбрать одну из библеотек логирования Log4J, LogBack и т.д. или встроенную по умолчанию в java java.util.logging - разобраться в них и настроить под себя.
    Ответ написан
    Комментировать
  • Почему не высвечивается результат return?

    @Vorh
    Вы с помощью оператора return возвращаете результат выполнения метода , в вашем случае это s.lenght , теперь для того чтобы вывести на консоль используйте метод
    System.out.println().
    public class Solution
    {
    
        public static void main(String[] args)
        {
            String localString = "I live in Russia";
            System.out.println(data(localString));
        }
    
        public static int data(String s)
        {
            return s.length();
        }
    
    }
    Ответ написан
    Комментировать