Разработка приложения на языке Java

Разработка Web-сервер, применение модуля Java Persistence API. Создание фреймворка, его модули. Область применения, основные достоинства и недостатки Spring. Основные достоинства и недостатки языка статически типизированного языка программирования Kotlin.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 18.02.2019
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Федеральное агентство железнодорожного транспорта

Омский государственный университет путей сообщения

Кафедра "Автоматика и системы управления"

Курсовая работа

по дисциплине «Прикладное программирование»

РАЗРАБОТКА ПРИЛОЖЕНИЯ НА ЯЗЫКЕ JAVA

Омск 2017

Задание

Необходимо разработать Web-сервер, использовав модуль Java Persistence API (JPA). Для этого необходимо скомпилировать файлы исходных кодов, добавить объектные файлы библиотек.

Варианты сборки: тестирование, локальное выполнение, запуск на сервере.

Реферат

Курсовая работа содержит 22страницы, 9 рисунков и 7источников.

Spring, фреймворк, JPA, CRUD, сервер, аннотация, JVMKotlin, база данных.

Пояснительная записка выполнена в программе Microsoft Word 2003, программная реализация выполнена в среде IntelliJIDEA 2016.

Введение

Фремймворк (иногда фреймвомрк; англицизм, неологизм от framework ? каркас, структура) -- программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.

Представляет собой программный код, предназначенный для решения типичной задачи. В отличие от библиотечного метода работа фреймворка зависит не от переданных аргументов, а модифицируется изменением участвующих в работе классов и объектов.

Данная платформа обеспечивает стандартные классы и объекты, реализующие поведение по умолчанию. Изменяя их, можно настроить работу программы, а именно: изменить базу данных, метод аутентификации и т.д.

Часто наиболее используемым является Spring, поддерживающий современные технологии разработки программного обеспечения и технологии построения программных систем.

В курсовой работе также его используем. Поэтому рассмотрим подробнее.

1. Фреймворк Spring

1.1 Краткая история создания фреймворка и его модули

Spring Framework (Spring) -- универсальный фреймворк с открытым исходным кодом для Java-платформы, имеет модульную архитектуру, состоящую из ядра и отдельных проектов.

Рисунок 1 ? Логотип

Впервые данный фреймворк

был опубликован Родом Джонсоном в книге «Expert One-on-One Java EE Designand Development»в октябре 2002 года. Выпущен под лицензией Apache 2.0 license в июне 2003 года. А уже в марте на следующий год выпускается первый стабильный релиз версии 1.0.

С этого периода начинается стремительное развитие фреймворка, так как Spring 2.0 выпускают в октябре 2006, версию 2.5 -- в ноябре 2007, Spring 3.0 в декабре 2009 и Spring 3.1 в декабре 2011. Новейшая версия ? это 4.3.7.

Упомянутое ранее ядро имеет название SpringCore, оно предназначено для конфигурирования приложения, состоящего из различных объектов различных классов. Конфигурация содержит как список объектов приложения, так и устанавливает связи между ними, что позволяет разрабатывать классы для логики приложения, не беспокоясь о типах используемых баз данных, обеспечения безопасности и др.

Далее рассмотрим модули.

SpringBoot - предлагает шаблоны конфигурации для приложения. Отдельные настройки шаблона можно переопределить.

SpringData - обеспечивает хранение данных в базах данных.

SpringSecurity - обеспечивает авторизацию и аудентификацию пользователей и разграничение доступа к объектам.

1.2 Область применения, основные достоинства и недостатки Spring

Рассматриваемый фреймворк обладает широкой функциональностью, поэтому область применения его весьма широка.

Часто используется в качестве источника расширений, нужных для эффективной разработки сложных бизнес-приложений вне тяжеловесных программных моделей, которые исторически были доминирующими в промышленности.

К основным достоинствам можно отнести:

? Относительную легкость в изучении и применении фреймворка в разработке и поддержке приложения;

? Имеется возможность писать независимые друг от друга компоненты, что в свою очередь дает преимущество в командной разработке, переносимости модулей;

? Содержит множество подпроектов, затрагивающих важные части создания софта, такие как веб-сервисы, веб-программирование, работа с базами данных, загрузка файлов, обработка ошибок и т.д. Все это настраивается в едином формате, что и упрощает поддержку приложения.

К недостаткам относим то, что фреймворк содержит большое количество готовых решений, ведь шаблонный код будет работать медленнее и занимать больше памяти, чем код, написанный под конкретную задачу и при использовании фреймворков программисты часто не разбираются в деталях того, как работает приложение.

2. Котлин

2.1 Краткая история создания языка и описание

Kotlin (Комтлин) ? статически типизированный язык программирования, работающий поверх JVM и разрабатываемый компанией JetBrains. Компилируется также в JavaScript. Язык назван в честь острова Котлин в Финском заливе, на котором расположен город Кронштадт.

Авторы ставили целью создать язык более лаконичным и безопасным, чем Java, и более простой, чем Scala. Следствием упрощения по сравнению со Scala стали также более быстрая компиляция и лучшая поддержка языка в IDE.

Позиционируется разработчиками как объектно-ориентированный язык промышленного уровня, а также как язык, который сможет заменить Java. При этом язык полностью совместим с Java, что позволяет разработчикам постепенно перейти с Java на Kotlin. В частности, в Android язык интегрируется с помощью Gradle, что позволяет для существующего Android-приложения внедрять новые функции на Kotlin без переписывания приложения целиком.

Язык разрабатывается с 2010 года, публично представлен в июле 2011. Исходный код реализации языка был открыт в феврале 2012. В феврале был выпущен milestone 1, включающий плагин для IDEA. В июне -- milestone 2 с поддержкой Android. В декабре 2012 года вышел milestone 4, включающий, в частности, поддержку Java 7. В феврале 2016 года вышел релиз-кандидат версии 1.0, а 15 февраля 2016 года -- релиз 1.0. 1 марта 2017 вышел релиз 1.1.

2.2 Синтаксис

Синтаксис языка похож на Pascal, TypeScript, Haxe,PL/SQL, F#, Go и Scala, C++, Java, C# и D.

При объявлении переменных и параметров, типы данных указываются после названия (разделитель двоеточие). Точка с запятой как разделитель операторов является не обязательной, также как в Scala и Groovy, в большинстве случаев перевода строки достаточно чтобы компилятор понял, что выражение закончилось.

Кроме объектно-ориентированного подхода, Kotlin также поддерживает процедурный стиль с использованием функций. Как и в C и C++, точкой входа в программе является функция "main", которая принимает массив параметров командной строки. Программы на Kotlin также поддерживают Perl и Unix/Linuxshell стиль интерпретации строк. Kotlin также поддерживает вывод типов.

2.3 Основные достоинства и недостатки языка

Достоинства:

? Компилируется не только под JVM, но и под JavaScript;

?Имеет открытый исходный код, поэтому можно легко найти, обозначить проблему в случае её возникновения и сообщить об этом разработчикам языка;

? Его репозиторий весит мало в отличии от того же Scala, и добавление Kotlin в проект равносильно добавлению саппорт библиотеки от Google;

? Higher-OrderFunctions, т.е; функции которые принимают функции, как параметры;

? Nullsafety. По умолчанию в Kotlin переменные не могут принимать null, если вы явно их так не обозначите;

Недостатки:

? Kotlin ориентирован на байткодJava 6 и не использует ряд улучшений, доступных в Java 8, например, invoke-dynamic;

? Проблемы с annotationprocessing;

? Отсутствуют аналоги плагинов-макросов или компиляторов, что ограничивает использование удобных макросов из Scala или плагинов наподобие CheckerFramework из Java;

? При использовании Java и Kotlin совместно нужно соблюдать определённые правила совместимости;

? Из-за молодости языка нет каких-то выведенных bestpractices для решения конкретных задач.

3. Реализация проекта

3.1 Сборка

Прежде всего, для создания и реализации проекта выбираем необходимую систему сборки.

На сайте выбираем нужные зависимости и скачиваем maven проект.

Рисунок 2 - Выбор зависимостей проекта

В скачанном проекте в файлеDemoApplication.java находится пример готового приложения.

Рисунок 3 - Готовое приложение в файле Demo Application.java

Здесь метод main запускает платформу Spring. Аннотация @SpringBootApplication указывает на то, что в этом классе задаются настройки Spring.

Также пример готового приложения содержит и файл Demo Application Test, в котором аннотация @RunWith указывает, что перед тестом нужно запустить Spring Runner.class класс, который позволяет тестировать Spring приложения с помощью Junit. Метод contex Load проверяет правильность загрузки конфигурации.

Рисунок 4 - Готовое приложение в файле Demo Application Test

3.2 Хранение Data объектов

Прежде всего стоит упомянуть, что полный листинг находится в приложении, здесь рассматриваются лишь его наиболее важные фрагменты.

Итак, для хранения java-объектов в базе данных используется модуль JPA, благодаря которому осуществляется реализация двух уровней корпоративного приложения (базы данных и DAO, последнее обеспечивает для POJO метода работы с бд).

Поэтому создадим класс Expenseв качестве dataobject, класс написан на языке Kotlin.

Рисунок 5 - Expense

Если изучить его, то можно заметить наличие некоторых аннотаций. Рассмотрим их подробнее.

@Entity указывает, что класс должен отображаться на базу данных, являться сущностью. Аннотация @Id говорит о том, что поле ID является первичным ключом таблицы. Аннотация @Generated Value указывает, что это поле должно генерироваться базой данных. Для автоматической генерации конструктора со всеми аргументами нужно задать начальные значения всех полей. Перед добавлением объекта на постоянное хранение его нужно создать в памяти, для чего и создаем вторичный конструктор с двумя параметрами.

Рисунок 6 - ExpenseRepository

ИнтерфейсExpense Repository содержит стандартные методы для уровня DAO, что позволяет в свою очередь JPA автоматически сгенерировать таким способом описанные методы и методы Expense Repository. Здесь аннотация @Repository говорит о необходимости генерирования объекта с методами, определенными в Expense Repository.

Теперь рассмотрим класс ExpenseController. В нем находится аннотация @RestController, указывающая на класс, в котором находятся методы, необходимые для вызова при поступлении запросов.

Аннотация @RequestMapping указывает метод, который нужно вызывать при некотором запросе к серверу. Параметры аннотации указывают, на запросы с какими свойствами должен отвечать метод. Результат передается в формате JSON.

Аннотация @PathVariable позволяет передать параметры запроса в качестве передаваемого в обрабатываемый метод параметра.

Аннотация @RequestBody позволяет передать тело запроса в качестве передаваемого в обрабатываемый метод параметра.

Рисунок 7 - ExpenseController

3.3 Тестирование web-сервера

Сервер поддерживает операции CRUD: добавление, чтение, обновление и удаление. Результаты его тестирования представлены на рисунках ниже.

Рисунок 8 - Отображение данных в формате JSON

Рисунок 9 - Результаты тестирования

Заключение

Для реализации данной курсовой работы были изучены Spring Framework, один из его модулей -JPA, а также основы языка Kotlin.

В результате разработалиWeb-сервер, поддерживающий операции CRUD, для этого нам понадобилось скомпилировать файлы исходных кодов, добавить объектные файлы библиотек.

В ходе работы практически убедились в том, что данный фреймворк предназначен для решения типичных задач и зависит не от переданных методу аргументов, а модифицируется изменением участвующих в работе классов и объектов, благодаря чему, изменяя используемые классы и объекты, можно легко настроить работу программы.

Библиографический список

1 СТП ОмГУПС-1.2-2005. Работы студенческие учебные и выпускные квалификационные: общие требования и правила оформления текстовых документов. - Омский Государственный Университет Путей Сообщения. Омск, 2005. 28 с.

2 Е.А. Альтман, Введение в фреймворк Spring / Е.А. Альтман / Омский гос. ун-т путей сообщения. Омск, 2017. 47 с.

3 Е.А. Альтман, Оптимизация Web сервера / Е.А. Альтман / Омский гос. ун-т путей сообщения. Омск, 2017. 17 с.

4 Справочник по IntelliJIDEA. [Электронный ресурс]

5 SpringFramework / Википедия. Свободная энциклопедия.

6 Kotlin / Википедия. Свободная энциклопедия.

7 Пользователь fogone, Немного о Котлин / Хабрахабр.

ПриложениеА

Приложение Б

Размещено на Allbest.ru

...

Подобные документы

  • История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.

    курсовая работа [795,9 K], добавлен 14.12.2012

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

  • Изучение объектно-ориентированного языка программирования Java, его функциональные возможности. Создание программного кода. Описание классов и методов, использованных в программе. Руководство пользователя, запуск сервера и клиентского приложения.

    курсовая работа [1,8 M], добавлен 16.09.2015

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

  • Разработка и создание игры "Змейка". Использование динамически-активных принципов языка Java. Графические объекты программы. Описание игры, правила, теоретические сведения. Классы приложения. Типы данных. Реализация. Метод. Объект. Блок-схема игры.

    курсовая работа [12,4 K], добавлен 18.06.2008

  • Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.

    курсовая работа [208,6 K], добавлен 03.12.2013

  • Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.

    курсовая работа [549,2 K], добавлен 23.12.2015

  • Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.

    курсовая работа [508,1 K], добавлен 10.11.2014

  • Общая характеристика и оценка возможностей языка программирования си-шарп, его сходные и отличительные черты от С++ и Java. Разработка с помощью данного языка программирования лексического и синтаксического анализатора. Составление таблиц разбора.

    курсовая работа [111,6 K], добавлен 11.06.2010

  • Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.

    курсовая работа [197,5 K], добавлен 19.11.2009

  • Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.

    курсовая работа [2,3 M], добавлен 16.12.2013

  • Язык Java как простой, обьектно-ориентированный, многопоточный язык программирования, разработанный компанией Sun Microsystems для расширения возможностей сети Internet. Типы данных, лексика и управляющие структуры данного языка программирования.

    презентация [46,1 K], добавлен 25.04.2014

  • Разработка программы, реализующей построение объемной гистограммы с использованием свойств языка программирования Java. Возможность графически отобразить статистические данные урожайности как основное требование к программе. Реализация кода программы.

    курсовая работа [333,5 K], добавлен 21.01.2013

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.

    курсовая работа [962,8 K], добавлен 13.01.2016

  • Встроенные типы данных, основные конструкции, структуры и применение языка Javа. Введение в интегрированную среду разработки Eclipse. Листинг программы, иллюстрирующей работу с одномерными массивами (создание массива). Спецификация класса Figure.

    методичка [1,4 M], добавлен 30.06.2009

  • Создание приложения для Android на языке Java. Переключатель языка и варианты перевода, которые появляются, когда пользователь вводит текст в поле. Возможность просмотра истории переводов. Разработка и подготовка вида экранов тестового приложения.

    курсовая работа [114,8 K], добавлен 03.08.2017

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

  • Общее понятие о пакете "java.net". Логическая структура соединений через сокеты. Создание объекта Socket, соединение между узлами Internet. Способы создания потока. Алгоритм работы системы клиент-сервер. Листинг ServerForm.java, запуск подпроцесса.

    лабораторная работа [174,6 K], добавлен 27.11.2013

  • Разработка компьютерного приложения "Кипящая жидкость" с применением навыков программирования на языке Java. Проектирование алгоритма для решения поставленной задачи, его предметная область. Создание приложения с графическим пользовательским интерфейсом.

    отчет по практике [3,0 M], добавлен 29.10.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.