mind.out.stream().filter(e -> e.contains("java") || e.contains("programming")).forEach(e -> blog::write)

Избавляемся от hibernate.properties

Для того чтобы вынести настройки hibernate в приложении, которое использует spring достаточно добавить свойства в объявлении бина sessionFactory. Можно пойти дальше и вынести некоторые часто изменяемые параметры в tomcat context.xml

0
Read More

Интернирование строк

Как известно, java хранит строки в некотором кэше находящимся в памяти. Это называется интернирование. В целях экономии памяти все одинаковые строки встречающиеся в коде, ссылаются на один и тот же объект. Приведу пример кода, который не всегда может выводить true: Первая строка s1 известна компилятору, вторая — создается режиме работы программы, т.е. в runtime, и компилятор не смог провести оптимизацию, сделав так, чтобы обе строки ссылались на один и тот же объект. Следовательно, все последующие строки встречающиеся в коде с…

0
Read More

Виды join’ов

К своему стыду, я до сих пор не знаю какие бывают виды join‘ов. Ну что же, попробуем разобраться. Начнем с того, что такое  join? Join — это операция объединяющая таблицы по какому то столбцу. join‘ы бывают следующих типов: left inner; right inner; left outer; right outer, более экзотических пока касаться не будем. Основное различие между ними в состоит в том, какие записи попадают в результирующую выборку. Далее буду показывать на примерах. Для этого мне потребуются две таблицы, первая таблица будет…

0
Read More

Коротко о PESC

Данный прием используется для обеспечения гибкости при проектировании api с использовании generic‘ов.Для дальнейшего понимания, стоит напомнить, что такое wildcard в java. Wildcard — это ограничение для типов, которые мы определяем с помощью generic’ов. Оно может быть как сверху, так и снизу.Ограничение снизу, определяется следующим образом Ему удовлетворяют все классы, у которых потомком является класс T. Обозначает ограничение сверху, под него подпадают все классы наследованые от класса T. Итак, вернемся теперь к PECS. Он гласит: producer — extends, consumer — super.…

0
Read More

Миграция данных при помощи liquibase

Недавно возникла проблема, по переносу существующих таблиц и данных хранящихся в них из одной реляционной данной в другую. Получилось это сделать при помощи такой замечательной утилиты, как liquibase. Она кроссплатформенная, написанная на языке программирования java.

0
Read More