Oleg Atamanenko
Often it is needed to compare two different instances of the class inside test. I.e. we save object into database, then fetch it back from db and we want to be sure if nothing was lost during saving/reading.
Continue Reading…AssertJ is a library which provides fluent strongly-typed assertions to use in unit tests. Example of assertions written with AssertJ: import io.github.uthark.blog.assertj.Assertions.assertThat; // ... within @Test User result = userDao.findByLogin("username"); assertThat(result).
Continue Reading…In this post I will show how one can implement custom JUnit @Rule. As an example let’s take Mockito and implement custom rule which will initialize Mocks in test class.
Continue Reading…Introduction Today I want to show how one can automatically apply additional restrictions on MongoDB Queries with MongoTemplate or Spring Data Mongo. Implementation First, let’s introduce interface QueryModifier. import org.springframework.data.mongodb.core.query.Query; public interface QueryModifier { /** * Modifies source query according to the rules.
Continue Reading…Очевидно, что мы не всегда можем воспользоваться автоматической генерацией кода, предоставляемой Spring Data JPA. Например, у нас слишком сложный запрос, или нам необходимо вызвать процедуру в базе данных, либо у нас сложная бизнес-логика.
Continue Reading…Сегодня я хочу рассказать, как можно сделать инициализацию логгера в классе с использованием аннотаций и BeanPostProcessor Очень часто мы инициализируем логгер следующим образом: public class MyClass { private static final Logger LOG = LoggerFactory.
Continue Reading…Казалось бы, есть простейшая задача - преобразовать строковое представление даты в объект класса java.util.Date. Как оказалось, иногда использование DateFormat не помогает. В случае, если строка - это заголовок Date из письма, то нам нужно использовать javax.
Continue Reading…Сегодня я хочу рассмотреть некоторые особенности переопределения методов в Java. В java нельзя переопределить: поля класса конструкторы, инициализаторы класса статические методы статические поля Подробнее об этом можно прочитать в Java Language Specification, §8.
Continue Reading…Возникла проблема - каким образом заменить в строке символы из национальных кодировок на соответствующие им из латиницы. Например, из строки explicación получить explicacion. package com.blogspot.atamanenko; import java.text.Normalizer; import java.text.Normalizer.Form; public class StringNormalizer { public static String normalize(String string) { return Normalizer.
Continue Reading…Выкладываю ниже список задач, которые нужно/можно выполнить для оптимизации приложения, написанного на Grails, может кому пригодится. Тестирование проведённых оптимизаций Первым делом необходимо разработать критерии проверки, которые позволят оценить эффективность проведённых оптимизаций.
Continue Reading…Архитектура сгенерированного приложения Spring Roo активно использует аспекты. В качестве реализации аспектов была взята библиотека aspectj. Большая часть сгенерированного кода попадает в отдельные файлы-аспекты. Создадим простой класс: ```bash new persistent class jpa -name ~.
Continue Reading…Столкнулся с такой проблемой - в некоторых случаях приложение, собранное антом не работает. Конкретно - не работает десереализация запросов на веб-сервис. Получаемый запрос содержит null в значениях полей. Опытным путём было выяснено, что на это влияет используемая версия Java.
Continue Reading…