Обновить
128K+

Java *

Объектно-ориентированный язык программирования

167,99
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Wicket: HelloWorld

Время на прочтение7 мин
Охват и читатели9.4K
Недавно занялся изучением замечательного фреймворка Wicket. К сожалению, в рунете информации о нем крайне мало и поэтому здесь я бы хотел вам показать некоторые его возможности. А за одно и записать чтобы самому не забыть.
Wicket — это фреймворк для написания пользовательских интерфейсов для веб приложений, который позволяет подавляющее большинство задач реализовать на java. Более подробно обо всех его преимуществах написано на оффсайте. Там же есть примеры, но лично мне они не очень понравились, поэтому заинтересовавшимся рекомендую полистать книгу (на английском) под названием «Wicket in action» (перевод полностью я врядли осилю, но некоторые вкусности оттуда покажу).
Читать дальше →

Google Annotations Gallery

Время на прочтение4 мин
Охват и читатели1.8K
The Google Annotations Gallery — новая open-source библиотека, которая предоставляет широкие возможности программистам для самовыражения. Вы не находите, что стандартные Java аннотации суховаты и безжизненны? Вам не хотелось поставить аннотацию LOL или Facepalm (?) Тогда, эта галерея для вас.

Исходный код: code.google.com/p/gag

Описание аннотаций


@AnimalsHarmedDuringTheMaking

Аннотация @AnimalsHarmedDuringTheMaking позволяет раскрыть факты о жестоком обращении с животными.
Copy Source | Copy HTML
  1. @AnimalsHarmedDuringTheMaking(
  2.     number = 1,
  3.     animal = "хомяк",
  4.     disclosure = "не кормил Fermie 2 дня чтобы закончить вовремя")
  5. public class ConstantTimePrimalityTest {

Читать дальше →

Java для профессионалов: задачи на знание спецификации

Время на прочтение3 мин
Охват и читатели6K
По ходу подготовки к сертификационному экзамену SCJP, а также при чтении в различных источниках нюансов использования языка Java, возникают множество различных вопросов. Также некоторые особенности языка кажутся совершенно нелогичными, однако так указано в спецификации языка, и каждый уважающий себя профессионал стремится к тому, чтобы знать эти мелочи.

Данный топик посвящен коротким примерам программ (или участков кода). Для каждой программы требуется ответить на простые вопросы: как она будет выполняться и что будет выведено на консоль после ее выполнения. Предполагается использование Java 1.6, если в задаче не указано иное.

Читать дальше →

Будущее построения архитектуры Java EE приложений становится яснее

Время на прочтение1 мин
Охват и читатели3.7K
Известный JavaEE архитектор-фрилансер недавно опубликовал свое видение будущего в построении архитектуры корпоративных приложений. Далее идет вольный перевод.

Java EE 6 и Spring 3 оказались очень похожи — как минимум архитектура и дизайн отличаются лишь в деталях. Не вижу отличий и в процессе разработки, где JPA и SessionBean-ы в Glassfish можно заменить технологиями Spring.

Spring также идет со своим сервером приложений, который с 7 октября 2008 является open source сервером с коммерческой поддержкой. Если вам понадобится получить патчи старых версий Spring — вам будет необходимо преобрести коммерческую поддержку от SpringSource/VMWare. Для серьезных проектов вы будете вынуждены преобрести два пакета поддержки — для сервера приложений от вендора и один от SpringSource, хотя этом случае одновременное использование Java EE 5/6 опровдать сложно. В перспективе я вижу два возможных варианта:
  • Развертывание Spring-а на проприетарный tc сервер
  • Развертывание Java EE 6 приложений без Spring-а
Обозначенная выше дилемма также справедлива и для проектов по миграции — стоит ли использовать стек Java EE, либо мигрировать на Spring. Это скорее стратегическая или политическая дилемма, нежели технологическая. Конечно, можно еще самостоятельно собирать и распространять Spring, однако такой подход недопустим в большинстве коммерческих проектов.

Я считаю, что будущее корпоративной Java очень чистое — мы полностью используем либо Spring, либо стек Java EE, но не эти технологии вместе.

См. также Oracle опубликовал планы развития Glassfish

Oracle опубликовал планы развития Glassfish

Время на прочтение2 мин
Охват и читатели2K
Oracle Glassfish roadmap

25 марта Oracle официально представил планы по развитию недавно преобретенного вместе с Sun Microsystems сервера приложений Glassfish. Самая важная новость — никаких изменений в работе сообщества над проектом не произойдет, Oracle заинтересован в дальнейшем развитии продукта.

Open source версия Glassfish остается, а в дополнение к ней Oracle будет поставлять свой Oracle GlassFish Server с преферансом и куртизанками со своей поддержкой, лицензированием и закрытыми дополнениями. Были опровергнуты утверждения о том, что прекратится поддержка кластеризации, проект станет закрытым для внешних разработчиков, Oracle не понимает Open source и т.д.

Планы по развитию затрагивают следующие аспекты: следующие релизы версий 2 и 3 через 100 дней (в основном интеграция с технологиями Oracle), векторы технологического развития Glassfish, интеграции с семейством Oracle Fusion Middleware, анонс версий 3 и 4.

Подробности...

Подсчёт времени выполнения метода через аннотацию

Время на прочтение8 мин
Охват и читатели21K
Во многих проектах требуется посчитать время, которое затратил тот или иной метод. Для этого можно вручную сохранять значение System.currentTimeMillis() и после метода вычислять затраченное время. Когда методов много это становится не очень удобным.
Поэтому я решил написать простенькую аннотацию, которая бы считала время выполнения метода. Попытавшись найти информацию в интернете, понял, что её по данной теме очень мало. Придётся как-то выкручиваться, собирая информацию по крупицам.
Читать дальше →

Java EE 6. Обзор JPA 2.0, часть 2: Коллекции

Время на прочтение3 мин
Охват и читатели25K


image

Продолжение серии. Ранее: Java EE 6. Обзор JPA 2.0, часть 1: Введение. В данной статье я продолжаю рассматривать изменения в JPA.

Встроенные коллекции

Введенный в JPA 2.0 компонент ElementCollection позволяет задавать политики отображения для необычных в JPA 1.0 видов коллекций: коллекций embeddable объектов, либо коллекций «простых» типов (Integer, String и т.д.). Также это компонент используется при в определениях отношений с Map, в роли ключа которого выступают любого рода объекты, а в роли значения — embeddable или «простые» объекты.

Значения ElementCollection всегда хранятся в отдельных таблицах, которые задаются аннотацией @CollectionTable. CollectionTable отпределяет имя таблицы и @JoinColumn или @JoinColumns в случае составного первичного ключа.
Читать дальше →

Java EE 6. Обзор JPA 2.0, часть 1: Введение

Время на прочтение2 мин
Охват и читатели17K

Пожалуй, наибольшее количество изменений с выходом спецификации Java EE 6 было привнесено в JPA (Java Persistence API). В серии статей, начиная с этой, я планирую рассказать подбробно о каждом из нововведений.

Введение


Технология JPA является абстракцией над JDBC и позволяет быть независимым от SQL. Все классы и интерфейсы JPA расположены в пакете javax.persistence, основными составляющими технологии являются:
  • ORM (механизм объектно-реляционного отображения);
  • Entity manager API — позволяет осуществлять базовые операции CRUD;
  • JPQL и Criteria API — механизмы извлечения данных;
  • Управление транзакциями и блокировками (как с использованием JTA, так и без);
  • Механизмы обратных вызовов и listener-ов.

Читать дальше →

Java EE 6. Что нового в Servlet API 3.0

Время на прочтение3 мин
Охват и читатели22K


С выходом Java EE 6 на ряду со значительными изменениями в JPA 2.0 спецификации сервлетов 3.0 также притерпела ряд улучшений: упростилась разработка и процедура развертывания, конфигурирование стало более удобным, появилась поддержка асинхронных запросов и улучшилась модель безопасности. Далее я попытаюсь осветить основные изменения в API.

Программирование и развертывание сервлетов упростилось главным образом за счет введения аннотаций для декларирования сервлет (@WebServlet), фильтров (@WebFilter), листнеров (@WebListener) и ограничений безопасности (@ServletSecurity). Таким образом, и дескриптор развертывания web.xml стал опциональным элементом. Обращаю внимание, что сами компоненты Servlet API не стали POJO, привычную иерархию интерфейсов и классов никто не отменял. Также добавилась аннотация для поддержки загрузки файлов @MultipartConfig и для установки параметров инициализации @WebInitParam.

Пример Hello World сервлета
package net.ismailov.tests;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name="hw", urlPatterns = "/hello_world")
public class HelloWorld extends HttpServlet{

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    PrintWriter writer = response.getWriter();
    writer.println("<h1>Hello, World!</h1>");
    
  }

}


Читать дальше →

Настраиваем Tomcat для работы с JSF2 и другими компонентами Java EE 6

Время на прочтение7 мин
Охват и читатели21K
Данная статья описывает по шагам как настроить Tomcat (на текущий момент версия 6.0.26) на работу с разными компонентами Java EE 6.Вы можете пропустить чтение этой статьи и сразу получить настроенный Tomcat и пример приложения.
подробности

Пробуем 3D с помощью jMonkeyEngine

Время на прочтение6 мин
Охват и читатели30K
Практически каждый, кто занимался геймдевом, понимает, что наилучшей производительности в этой области, по понятным причинам, можно добиться лишь на языках С/С++/asm. С данным утверждением в этой статье я спорить не буду, да и раньше даже как-то не задумывался о создании realtime-игр на других языках. Однако, игры бывают разные, и надо отдавать себе отчёт в том, насколько оправданы трудозатраты на реализацию очередного продукта. Если проект монструозен, с «тяжёлой» графической составляющей, даже после проведения весьма агрессивной оптимизации всё равно требующий от конечных пользователей (геймеров) топового железа на борту, то особых конкурентов на данный момент среди языков разработки у С/С++ в этом случае нету. Но если игрушка — не более чем обыкновенная казуалка, для запуска которой и нетбука будет достаточно, то можно позволить себе куда больший простор для фантазии в вопросе выбора инструментов для разработки. Исходя из этого принципа, в данной статье попробуем разобраться, чем может похвастаться в области геймдева такой, казалось бы, не совсем подходящий для этого, но удобный в целом язык Java, на примере движка jME.
Читать дальше →

Видеоурок — Java + Intellij IDEA 9 + GWT 2.0 + Apache Tomcat

Время на прочтение1 мин
Охват и читатели11K
Записал видеоурок, думаю многим начинающим он пойдёт на пользу и ответит на многие вопросы.

image

Скачать в разрешении 1280x800 можно здесь Размер 32 мегабайта.

Вы узнаете, как создать приложение на GWT в среде Intellij IDEA 9. Мы напишем простой асинхронный запрос, сгенерируем число на сервере, отправим ответ клиенту и выведем результат на экране.

Далее, всё задеплоим на сервер Apache Tomcat и покажем работающий пример.

Конечно, многие нюансы опущены. Всё-таки урок для начинающий гвт-шников!
Удачи в программировании!

ПС. Один момент сглючил при сжатии видео, когда нужно было скопировать библиотеку gwt-servlet.jar с папки GWT 2.0 в папку WEB-INF/lib.

Ближайшие события

Введение в Spring MVC с аннотациями

Время на прочтение4 мин
Охват и читатели82K
Вчера начал разбираться со Spring MVC 3.0.Искал статьи на Хабре, нашел пару штук.Правда они были без аннотаций.
Цель этой статьи написать Hello World c использованием возможностей писать конфиги прямо в коде, благодаря аннотациям.Ну что приступим.
Читать дальше →

Abstract и Final class одновременно в языке программирования Java?!

Время на прочтение1 мин
Охват и читатели24K
Статья представляет авторское понимание главы из книги Effective Java, Second Edition by Joshua Bloch

Простым языком определим понятие абстрактного и финального класса:
Абстрактный класс не может быть инстанциирован, но он может иметь подклассы.
Финальный класс это класс от которого запрещено наследоваться.

Для более точного определения обратитесь к официальному туториалу:

Комбинация abstract и final для класса означает, что у класса не может быть наследников и нельзя создать экземпляр для данного класса.

Сделать класс abstract и final одновременно нам, например, необходимо когда мы ходим создать класс утилит, состоящих из статических методов (например java.lang.Math или java.util.Arrays).

Решение

Использование паттерна Builder в случае, когда мы сталкиваемся с конструктором с многими параметрами

Время на прочтение7 мин
Охват и читатели40K
Статья представляет вольный перевод главы из книги Effective Java, Second Edition by Joshua Bloch

В статье рассматриваются 3 альтернативных подхода к упрощению использования класса, с конструктором с многими параметрами.

Читать далее

Sun Tech Days и Хабралюди

Время на прочтение2 мин
Охват и читатели836
Все уже наверняка видели баннеры и слышали про намечающееся событие.

Sun Tech Days
8 и 9 апреля 2010 года в Санкт-Петербурге.

Захотелось написать пару слов о том «что это и зачем» для тех, кто ни разу не был по каким-то причинам и узнать (welcome в комменты) кто собирается из уважаемого Хабрасообщества в этот раз.

Для начала стоит сказать, что конференция международная и Sun привозит людей самых разных. Много докладов на английском языке. В прошлом году бесплатно делали синхронный перевод для тех у кого с языками не все гладко. Я ради интереса взял один раз незамысловатую приблуду для прослушивания перевода и… выключил минут через пять. Слушать можно, но благо уровень английского позволяет понимать и вживую. На стендах можно задавать вопросы и общаться с разработчиками.
Читать дальше →

Вышла NetBeans 6.9 Milestone 1

Время на прочтение1 мин
Охват и читатели852
С сегодняшнего дня доступна для скачивания новая тестовая NetBeans 6.9.
Для себя как для PHP-программиста выделил:
— поддержка Zend Framework (напомню что уже есть выбор Symfony);
— улучшенный PHPDoc;
— добавлены новые настройки форматирования Вашего PHP-кода;
— поработали также над обработкой CSS

Также добавлены новые прелести для Java разработчиков и увеличена скорость работы IDE, что не может не радовать )

Подробности здесь на оф. сайте.

Java 1.6.0_18 Update доступен — что нового?

Время на прочтение1 мин
Охват и читатели1.7K
Прежде всего — java.sun.com/javase/6/webnotes/6u18.htm l.

Коротко:

Саппорт для нескольких новых конфигураций — Windows 7, Red Hat Enterprise Linux 5.3, Firefox 3.6.

VisualVM версии 1.2 с новыми фичами (мне, например, понравился семлинг-профайлинг).

Java DB — добавлена Java DB 10.5.3.0.

Улучшения производительности, в т.ч. на уровне JVM (новая версия JVM — Hotspot 16 включена в релиз).

Никаких security fixes — все последние уже есть в 17-ой версии.

Прошу прощения за короткий пост, но времени мало, и решил лучше запостить такой. Все равно те, кому по настоящему интересно, пойдут читать оригинал :))

Марк Райнхольд о JDK 7, замыканиях, JRockit и HotSpot

Время на прочтение3 мин
Охват и читатели1.9K
Oracle TechCasts возобновились. Сегодня [т.е. 16-го февраля] Марк Райнхольд рассказывал о JDK 7 и отвечал на вопросы зрителей. Райнхольд обсуждал самое существенное, над чем он работает в проекте OpenJDK, и раскрыл некоторые предварительные наметки, направленные на объединение кода JRockit и HotSpot. Project Lambda, о котором обычно говорят, как о «замыканиях для Java», также был темой обсуждения.
Читать дальше →