В своём предыдущем посте я описал работу с JdbcTemplate на примере простого DAO-класса. Возможностей JdbcTemplate вполне хватает, что бы сделать работу с базами данными немного проще. Но использование вопросительного знака в качестве плейсхолдера для параметра запроса не всегда удобно, особенно, когда речь идёт о работе с таблицами, имеющими большое количество колонок. В этом случае удобнее будет использовать класс NamedParameterJdbcTemplate, который позволяет использовать именованные параметры в SQL-запросах. Читать далее Spring Framework и работа с базами данных: NamedParameterJdbcTemplate
Spring Framework и работа с базами данных: JdbcTemplate
Для работы с реляционными базами данных в Spring Framework предусмотрен такой замечательный инструмент как JdbcTemplate, который является обвязкой вокруг стандартных средств JDBC. JdbcTemplate прост и гибок в применении, его возможностей вполне достаточно для реализации проектов малых и средних размеров. В JDBCTemplate не предусмотрены стандартные средства ORM в отличии от Hibernate или JPA, так что при его использовании нужно самостоятельно писать мапперы, которые будут преобразовывать данные полученные из БД в объекты классов сущностей.
Читать далее Spring Framework и работа с базами данных: JdbcTemplate
NetBeans и покрытие кода тестами
В NetBeans интегрирован плагин, позволяющий просмотреть покрытие кода тестами. Что бы пункт «Code coverage/Охват кода» меню проекта стал доступен, необходимо только добавить в зависимости jacoco-maven-plugin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.6.201602180812</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build> |
Spring Framework и инициализация компонентов
Создание компонентов
Основными элементами в контексте приложения, использующего Spring Framework, являются компоненты или бины (beans), используемые для внедрения зависимостей (Dependency Injection, DI). Есть два основных способа создания таких компонентов.
Создание компонента при помощи аннотаций
Самый простой и наиболее распространённый способ создания компонента — при помощи аннотации @Component или аннотаций, наследующих её, таких как @Service, @Repository или @Controller из пакета org.springframework.stereotype. Читать далее Spring Framework и инициализация компонентов
Letsencrypt Certbot и DialogError
На днях решил настроить для одного из доменов HTTPS, запустил Certbot от Letsencrypt, ввёл нужный домен и… получил ошибку:
1 2 3 |
An unexpected error occurred: DialogError Please see the logfiles in /var/log/letsencrypt for more details |
Гугление ошибки конкретных ответов не дало, но нашёл в одном из обсуждений указание, что для диалогового окна, открывающегося в терминале, нужно минимум 80 строк. Проблема как раз была в том, что я выполнял свои действия в тильде, где в обычном режиме этих 80 строк нет. После открытия терминала на полный экран всё замечательно сработало. Впрочем, если указывать в аргументах certbot-auto путь, куда нуда нужно складывать временные файлы, то эта ошибка не возникает.
Ubuntu Server и GitLab CE: обновление и pg_dump
Если вы устанавливали GitLab CE при помощи стандартного deb-пакета, но при обновлении получаете ошибку вроде
1 |
pg_dump: server version: 9.5.2; pg_dump version: 9.2.15 |
То что бы её обойти, достаточно удалить pg_dump, поставляемый с GitLab, и сделать симлинк на системный pg_dump.
1 2 |
rm /opt/gitlab/embedded/bin/pg_dump ln -s /usr/bin/pg_dump /opt/gitlab/embedded/bin/pg_dump |
Но стоит помнить, что после обновления будет возвращена старая версия pg_dump.
Spring Security и токен-аутентификация: Простой вариант
На днях решил перечитать документацию Spring Security и обнаружил, к своему удивлению, что фреймворк предоставляет реализацию токен-аутентификации прямо из коробки. Получилось как всегда: вместо того, чтобы изобретать собственные велосипеды, нужно было заглянуть в документацию. В общем, как обычно, RTFM. Да, мой вариант работает вполне нормально и придерживается того же принципа, но логичнее использовать инструменты, предоставляемые разработчиками Spring. Читать далее Spring Security и токен-аутентификация: Простой вариант
Сменил бложек
Надоело мне наконец-то ковыряться с кривым blogspot’ом, и я решил переехать на WordPress. В ближайшие несколько дней перенесу сюда основные и актуальные посты из старого блога, а так же постараюсь опубликовать свежий, посвящённый Spring Security и авторизации, озарение, так сказать, пришло.