Читаем Изучаем Java EE 7 полностью

Листинг 1.5. Веб-служба RESTful (с сохранением состояния представления)

@Path("books")

public class BookResource {

··@Inject

··private EntityManager em;

··@GET

··@Produces({"application/xml", "application/json"})

··public List getAllBooks() {

····Query query = em.createNamedQuery("findAllBooks");

····List books = query.getResultList();

····return books;

··}

}

В следующих главах вы будете периодически встречаться с кодом такого типа, где компоненты только содержат бизнес-логику, а метаданные представлены аннотациями (или XML). Таким образом гарантируется, что контейнер использует именно необходимые сервисы.

<p>Java Standard Edition 7</p>

Важно подчеркнуть, что Java EE — это расширенная версия Java SE. Это означает, что в Java EE доступны все возможности языка Java, а также API.

Официальный релиз платформы Java SE 7 состоялся в июле 2011 года. Она была разработана в рамках запроса на спецификацию JSR 336 и предоставляла много новых возможностей, обеспечивая простоту разработки платформ предыдущих версий. Напомню, что функционал Java SE 5 включал автобоксинг, аннотирование, дженерики (обобщенные сущности), перечисление и т. д. Новинками Java SE 6 стали инструменты диагностирования, управления, мониторинга и интерфейс JMX API, упрощенное выполнение сценарных языков на виртуальной машине Java. Java SE 7 объединяет запросы на спецификацию JSR 334 (чаще употребляется название Project Coin), JSR 292 (InvokeDynamic или поддержка динамических языков на виртуальной машине Java), JSR 203 (новый API ввода/вывода, обычно называемый NIO.2), а также несколько обновлений существующих спецификаций (JDBC 4.1 (JSR 221)). Даже если в этой книге не удастся подробно описать Java SE 7, некоторые из этих обновлений будут приведены в качестве примеров, поэтому я хочу предложить вам краткий обзор того, как они могут выглядеть.

<p>Строковый оператор</p>

До появления Java SE 7 в качестве оператора ветвления могли использоваться только числа (типов byte, short, int, long, char) или перечисления. Теперь стало возможным применять переключатель с цифро-буквенными значениями Strcompare. Это помогает избежать длинных списков, начинающихся с if/then/else, и сделать код более удобочитаемым. Теперь вы можете использовать в своих приложениях код, показанный в листинге 1.6.

Листинг 1.6. Строковый оператор

Stringaction = "update";

switch (action) {

··case "create":

····create();

····break;

··case "read":

····read();

····break;

··case "udpate":

····udpate();

····break;

··case "delete":

····delete();

····break;

··default:

····noCrudAction(action);

}

<p>Ромбовидная нотация</p>

Дженерики впервые появились в Java SE 5, но синтаксис их был достаточно пространным. В Java SE 7 появился более лаконичный синтаксис, называемый ромбовидным. В таком варианте записи объявление объекта не повторяется при его инстанцировании. Листинг 1.7 содержит пример объявления дженериков как с применением ромбовидного оператора, так и без него.

Листинг 1.7. Объявление дженериков

// Без ромбовидного оператора

List list = new ArrayList();

Map, Map>> map =

····new HashMap, Map>>();

// C ромбовидным оператором

List list = new ArrayList<>();

Map, Map>> map = new HashMap<>();

<p>Конструкция try-with-resources</p>

В некоторых Java API закрытием ресурсов необходимо управлять вручную, обычно с помощью метода close в блоке finally. Это касается ресурсов, управляемых операционной системой, например файлов, сокетов или соединений интерфейса JDBC. Листинг 1.8 показывает, как необходимо ставить закрывающий код в блоке finally с обработкой исключений, но удобочитаемость кода из-за этого снижается.

Листинг 1.8. Закрытие входных/выходных потоков в блоках Finally

try {

··InputStream input = new FileInputStream(in.txt);

··try {

····OutputStream output = new FileOutputStream(out.txt);

····try {

······byte[] buf = new byte[1024];

······int len;

······while ((len = input.read(buf)) >= 0)

······output.write(buf, 0, len);

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных