spring boot logo

Spring Boot простое приложение

Сегодня поговорим о самом популярном java фреймворке — Spring. Он очень полезен при разработке практически любых продуктов:

  • веб;
  • десктоп;
  • клауд.

Мы уже разрабатывали веб приложение только средствами Java и убедились, что местам это довольно трудоемкая работа. Особенно, что касается работы с большой базой данных.

Сегодня я покажу как создать простое веб приложение с использованием Spring Boot. Перед тем, как начать, предлагаю немного ознакомиться с особенностями Spring Boot.

На официальном сайте сказано, что Spring Boot предназначен для  быстрого и простого запуска приложений с минимумом настроек с Вашей стороны. И это правда. Для запуска большинства приложений от Вас не потребуется много настроек, конфигураций. Более того, для запуска веб приложения на Spring Boot больше не нужно качать и устанавливать сервер приложений типа Tomcat. Данный фреймворк идет со встроенным томкатом. Больше не нужно создавать web.xml да и вообще иметь дело с каким либо xml файлом. Разве что с pom.xml. Да и при желании можно заменить Maven сборку на Gradle.

Теперь, когда мы мы рассмотрели все «плюшки» Spring Boot, можно начать программировать.

Для начала нужно создать простое мавен приложение. Я сторонник Maven сборки. Вы можете выбрать любой сборщик приложений.

new maven project

new maven project step 2

Далее, как и всегда, нужно добавить необходимые зависимости в pom.xml.

Для Spring Boot будет достаточно spring-boot-starter и spring-boot-starter-web.

Полный код pom.xml:

Код    
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3.   <modelVersion>4.0.0</modelVersion>
  4.   <groupId>com.javamaster</groupId>
  5.   <artifactId>sprboot</artifactId>
  6.   <version>0.0.1-SNAPSHOT</version>
  7.  
  8.   <dependencies>
  9.     <dependency>
  10.         <groupId>org.springframework.boot</groupId>
  11.         <artifactId>spring-boot-starter</artifactId>
  12.         <version>1.5.8.RELEASE</version>
  13.     </dependency>
  14.     <dependency>
  15.         <groupId>org.springframework.boot</groupId>
  16.         <artifactId>spring-boot-starter-web</artifactId>
  17.         <version>1.5.8.RELEASE</version>
  18.     </dependency>
  19.   </dependencies>
  20. </project>

Так, как данный фреймворк требует минимум конфигураций, мы должны следовать некоторым правилам по умолчанию. При желании можно изменить конфиги по умолчанию. Но нам это пока не нужно. Что имеется ввиду под конфигурациями по умолчанию. Приложение будет искать наши веб страницы папке src/main/resources/static. По умолчанию Spring Boot будет искать файлы с расширением .html. В конце статьи я покажу как настроить приложение для того, чтобы оно искало например .jsp.

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

Так как теперь у нас нет сервлета или web.xml, то точкой входа в нашу программу будет обычный метод main, который нам так знаком. Для конфигурации нужно добавить лишь несколько строк кода и приложение уже можно запускать.

Нужно создать класс с настройками и добавить в него main для запуска:

Код    
  1. package sprboot.config;
  2.  
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
  5. import org.springframework.boot.autoconfigure.SpringBootApplication;
  6.  
  7. @SpringBootApplication //аннотация которая обозначает, что это spring boot приложение
  8. //а значит, что программа должна быть запущена как spring boot
  9. @EnableAutoConfiguration//включает автоконфигурацю и тем самым избавляет нас от написания
  10. //дополнительных классов конфигураций
  11. //по желанию можно написать свою конфигурацию. приложение выберет именно Вашу кастомноую конфигурацию
  12. public class Application {
  13.  
  14.     public static void main(String[] args) {
  15.         SpringApplication.run(Application.class);//запуск приложения
  16.  
  17.     }
  18.  
  19. }

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

За потребностью, можно написать свои настройки с аннотацией @Configuration. Приложение автоматически выберет Ваши настройки и проигнорирует заданные ему по умолчанию. Так например, можно дописать настройки безопасности или Hibernate.

Теперь, когда конфиги готовы, осталось только написать контроллер и создать простую страничку. Как я уже говорил выше, по умолчанию spring boot будет искать наши странички в src/main/resources/static. Давайте туда и поместим наш index.html:

Код    
  1. <!DOCTYPE html>
  2. <meta charset="UTF-8">
  3. <title>Insert title here</title>
  4. </head>
  5. <h1>hi there</h1>
  6. </body>
  7. </html>

Теперь создадим простой контроллер:

Код    
  1. package sprboot.controller;
  2.  
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5.  
  6. @Controller
  7. public class HomeController {
  8.  
  9.     @GetMapping("/")
  10.     public String getIndex() {
  11.         return "index";
  12.     }
  13. }

Вот и все. Очень просто и быстро с минимумом настроек, как и говорили авторы Spring Boot.

Вот как выглядит моя структура файлов в Eclipse:

структура файлов spring boot приложения

Теперь запустите класс Application как обычное java приложение и следите за консолью. Должно быть примерно как на картинке ниже:

spring boot console output

Видим сообщение о том, что Tomcat успешно запустился и слушает по порту 8080. Если Вы не меняли стандартный порт, то приложение запуститься именно на этом порту.

Теперь переходим в браузер, набираем http://localhost:8080/ и видим результаты нашей работы:

Вот и все. У Вас готовое Spring boot приложение.

Теперь, как я и обещал, я покажу небольшую кастомизацию spring boot. Допустим, Вы решили пользоваться не html страничками, a jsp или поменять расположение Ваших файлов. Для этого нужно указать префикс и суффикс, как мы это делали в простом Spring MVC приложении. Spring Boot ищет настройки в файле application.properties который нужно расположить в том же src/main/resources/:

spring.mvc.view.prefix = /WEB-INF/view/
spring.mvc.view.suffix = .jsp

Теперь Вы можете положить Ваши файлы с расширением .jsp и в папку /WEB-INF/view/

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

Я записал небольшое видео, где показано, как настроить Spring Boot для jsp. В описании к видео ссылка на код.

 

3 thoughts on “Spring Boot простое приложение

    • Очено просто работает. Просто нужно для аннотации @EnableAutoConfigurationдобавить в скобки exclude.
      @EnableAutoConfiguration(exclude=SecuritiConfiguration.class)

Добавить комментарий