ru.java на livejournal
Вопрос по Spring
Есть например такая структурка
</property>
Можно ли как-то в C получить ссылку на A не явно, иерархически?
Теги:
spring
Лента публикаций русскоязычной блогосферы
по программированию на языке Java
Есть например такая структурка
Теги:
spring
Может кто сталкивался, если через аннотации делать, можно ли как то динамически формировать ORDER BY
Что то вроде такого:
@Select("select 1 from dual order by #{order_by}")
Через xml-ки решается просто, но вот интересней было бы через нотации.
Нашел как-то на stack overflow вопрос (link).
Need to create java CLI programm that searchs for specific files matched some pattern. Need to use multi-threading approach without using util.concurrent package and to provide good performance on parallel controllers.
Перевод
Нужно написать консольную программу, которая ищет файлы по какому-то паттерну. Программа должна быть многопоточная, но нельзя использовать пакет util.concurrent. Требуется добиться максимальной производительности.
В общем идея в принципе была не сложная. Т.к. по условию нельзя использовать util.concurrent, то надо реализовать свой пул потоков, плюс написать какие-то таски, которые в этом пуле потоков будут крутиться.
Так же я не был уверен в том, что при многопоточном использовании IO будет увеличение производительности.
Теги:
Java
multithreading
Народ, а есть ли достойные печатные издания про/по/о Java, на которые можно оформить подписку?
У меня тут достаточно нестандартная ситуация: есть jsp страница, есть открывающий ее пользователь, со всеми своими реквестами и сессиями. Надо сгенерированную страницу не послать в браузер, а сохранить в виде сгенеренного html на сервере. Можно такое сделать какими-нибудь стандартными (или даже нестандартными) методами?
Теги:
jsp
Недавно от товарища пришел вопрос на засыпку: "Почему в интерфейсe java.util.Map метод get в качестве ключа принимает Object, а метод put использует женерики?"
Сходу ответить не смог, пришлось разбираться.
Сразу пришло на ум несколько гипотез:
Не смотря на то, что первые две гипотезы вполне правдоподобны, думаю самый интересный это третий вариант ("так специально задумано"). Если поискать в интернете,то можно найти следующее объяснение.
По "контракту" Map должен работать с ключами по следующему правилу:
Легко видеть, что т.к. в при вызове метода key.equals(k) объекты key и k потенциально могут быть абсолютно разных классов, то в итоге мы не имеем право вводить ограничение на тип в сигнатуре метода.
Конечно большинство java-программистов знают, что если нужно переопределить метод equals, то по хорошему надо сделать проверку типа проверяемого объекта, но в жизни всякое случается...
В качестве примера к объяснению, в интернете можно встретить пример на списках.
Суть очень простая. Мы предполагаем, что списки равны тогда, когда равны все их элементы. При этом по большому счету не так уж и важно какой именно это список (ArrayList, LinkedList и т.д.).
В итоге если использовать список в качестве ключа, то возникнет следующая (вполне реальная) ситуация.
P.S.: Лично я в жизни не сталкивался с ситуацией, когда нужно было использовать список в качестве ключа.
Ниже я опишу один из возможных вариантов обработки клиентов на сервере с использованием ScheduledThreadPoolExecutor. Примеры включены.
Доброе время суток, Хабраюзер.
Разрабатывая в основном для платформы J2ME, я всегда старался вносить какие то изюминки в свои проекты. Так, однажды, мне понадобилось выделить пункты меню.
Стандартное решение, через тире или пронумеровав их, использовать не очень хотелось, но другие варианты тогда у меня отсутствовали. Обдумывая как бы лучше оформить эти пункты, я случайно наткнулся на свою старую школьную тетрадку по истории, в которой пункты были пронумерованы с использованием римских цифр. Бинго!
Стоит признаться, на то время моих познаний в римских цифрах хватало только для подсчета до второго-третьего десятка. Что вообще то для нумерации пунктов должно было хватить. Но как любой программист, захотелось иметь готовое решение, которое смогло бы переводить любые целые десятичные арабские числа в эквивалентные им римские.
Теги:
Java
J2ME
римские цифры
алгоритмы
Практически ни для кого не секрет, что при тестировании кода, использующего какие-то внешние компоненты, часто применяют подход mock-объектов. Для тех, кто всё же о нём не знает, кратко поясню: это такие объекты, которые имеют тот же интерфейс, что и используемые компоненты, но их поведение полностью задаётся в тесте, и их использование позволяет избежать поднятия полной инфраструктуры, необходимой приложению для запуска. Что ещё более важно, можно легко и непринуждённо проконтролировать, что код вызывал те или иные методы у mock-объекта с теми или иными аргументами.
В этой статье я проведу сравнительный анализ двух распространённых в Java библиотек для работы с mock'ами: EasyMock и JMock. Для осознания достаточно базового знания JUnit, а после прочтения этой статьи у вас будет весьма хорошее представление о том, как пользоваться обеими этими библиотеками.
Теги:
junit
unit testing
easymock
jmock
mock
Итак, в продолжение предыдущей статьи я попробую на реальных ситуациях рассказать о проблемах, которые возникали у меня при работе в реальных проектах.
public String dumpKeys() {
String regions[] = CacheManager.getInstance().getCacheNames();
StringBuilder allkeys = new StringBuilder();
String newLine = System.getProperty("line.separator");
for (String region : regions) {
Ehcache cache = CacheManager.getInstance().getEhcache(region);
allkeys.append(toSomeReadableString(cache.getKeys()));
allkeys.append(newLine);
}
return allkeys.toString();
}
Теги:
Java
hibernate cache
problems