Spring Framework (или коротко Spring) — универсальный фреймворк с открытым исходным кодом для Java-платформы. Также существует форк для платформы .NET Framework, названный Spring.NET.Первая версия была написана Родом Джонсоном, который впервые опубликовал её вместе с изданием своей книги «Expert One-on-One Java EE Design and Development»[3] (Wrox Press, октябрь 2002 года).Spring Framework (или коротко Spring) — универсальный фреймворк с открытым исходным кодом для Java-платформы. Также существует форк для платформы .NET Framework, названный Spring.NET.Первая версия была написана Родом Джонсоном, который впервые опубликовал её вместе с изданием своей книги «Expert One-on-One Java EE Design and Development» (Wrox Press, октябрь 2002 года). |
MVC — это шаблон, помогающий разделаять презентацию от бизнес логики. Если кратко, в приложении MVC все Web запросы обрабатываются контроллером. Контроллер ответственен за распознавание запросов пользователя и за взимодействие с объектами бизнес логики. Эта бизнес объекты — модель (model). Контроллер, после выполнения входящего запроса, решает, какой view нужно выбрать. View использует данные модели для создания презентации, которая возвращается пользователю. |
В данной статье мы расмотрим пример создания простого web-приложения на основе Spring MVC. Мы будем использовать:
1. Spring
2. Maven
3. Jackson
И так сначала создаем проект через Maven. У меня получилась следующая структура:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>RestDemo</groupId><artifactId>RestDemo</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>RestDemo Maven Webapp</name><url>http://maven.apache.org</url> <properties> <spring.version>3.2.2.RELEASE</spring.version> <jackson.version>1.9.10</jackson.version> <jdk.version>1.6</jdk.version></properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>sprig-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency></dependencies> <build> ....</build></project>
Дальше настраиваем web.xml

Дальше очень важный файл mvc-dispatcher-servlet.xml, он и будет решать где наши контроллеры которые будут выполнять необходимые действия

Так как мы используем Jackson, для того что вернуть результат в виде JSON то нам необходимо создать модель. Экземпляр которой мы будем возвращать в виде(формате) JSON. Также у нас будет метод который просто возвращает текущую дату, там все просто и это для наглядности.
Наша модель:

Дальше наш контроллер

Что насинтересует:
1. @RequestMapping(value = “/fields/values/{name}”, method = RequestMethod.GET)
value – формат запросса который будет обрабатыватсья. Тоесть в нашем случае url. Также {name} – это возможность передать переменную.
2. @PathVariable String name – имя через которое будет доступна наша переменная с url.
3. @ResponseBody – аннотация может быть поставлена на методе и указывает, что тип возвращаемого результата должен быть написан прямо на теле HTTP-отклика.
А вот резульат выглядит следующим образом
