Spring boot MVC application tutorial

21 06 2014

spring-logoI will tutor you to create simple Spring MVC application based on Spring boot. App will have two linked web pages with thymeleaf. The project itself will be made in Eclipse as an Gradle project. Let’s start!

Download Source Code

Source for this tutorial is available here, on GitHub

Create project with Gradle build file

Create build.gradle file. First of all depict repositories and dependencies that you will use for gradle plugins:

buildscript {
    repositories {
        maven { url "http://repo.spring.io/libs-release" }
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.1.1.RELEASE")
    }
}

Then apply plugins for java, spring-boot and eclipse to have default targets of these plugins:

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'

Now show which java version compliance you want to have, and how your jar file will be named:

sourceCompatibility = 1.6

jar {
    baseName = 'looksok-mvc-demo'
    version =  '0.1.0'
}

And add repositories with dependencies used in your code:

repositories {
    mavenLocal()
    mavenCentral()
    maven { url "http://repo.spring.io/libs-release" }
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-thymeleaf")
    testCompile("junit:junit")
}

Note: Use gradle version 1.1 or higher

Create web page templates in thymeleaf

Start with welcome page in src/main/resources/templates/hello.html with link to greeting page. If gradle did not automatically create directory structure, then create necessary folders on your own.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" 
	xmlns:th="http://www.thymeleaf.org" >
    <head>
        <title>Spring MVC Example</title>
    </head>
    <body>
        <h1>Welcome!</h1>

        <p>Click <a th:href="@{/greeting}">here</a> to advance to the next page.</p>
    </body>
</html>

and second template named greeting.html with link to previous page:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" 
	xmlns:th="http://www.thymeleaf.org" >
    <head>
        <title>Spring MVC Example</title>
    </head>
    <body>
        <h1>Hello on a second page!</h1>

        <p>Click <a th:href="@{/hello}">here</a> to go back.</p>
    </body>
</html>

Configure MVC application components

Now with template pages you need to register controllers that will expose views (templates). Create java class with MVC Configuration (extending WebMvcConfigurerAdapter and market with @Configuration annotation). There override the addViewControllers method and add your views to the registry:

@Configuration
public class MvcConfig extends WebMvcAutoConfigurationAdapter {

	@Override
	public void addViewControllers(ViewControllerRegistry registry) {
		registry.addViewController("/hello").setViewName("hello");
		registry.addViewController("/greeting").setViewName("greeting");
	}
}

Make the Spring boot application executable
Spring boot will compile to Uber jar file with servlet engine embedded. To make it possible, the jar needs to have main class. This is how it should look like:

@EnableAutoConfiguration
@Configuration
@ComponentScan("pl.looksok.spring")
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

Remember about annotations. The configuration annotation to indicate this is Spring config class, EnableAutoConfiguration of servlet engine and ComponentScan with package to scan (package is not mandatory when all @Configuration classes are in the same package).

Compile and run
Execute the command to build spring boot app:

gradle build compile

and to start the application:

java -jar [path_to_your_otput_jar]/looksok-mvc-demo-0.1.0.jar

To launch webpage, access the url:
localhost:8080\hello

Download Source Code

Source for this tutorial is availableĀ here, on GitHub

Did I help you?
I manage this blog and share my knowledge for free, sacrificing my time. If you appreciate it and find this information helpful, please consider making a donation in order to keep this page alive and improve quality

Donate Button with Credit Cards

Thank You!

Advertisements

Actions

Information

7 responses

5 07 2014
String externalization in Spring 3.1+ with MessageSource [no web.xml] | Looks OK!

[…] Start with the SpringMVC tutorial Code This tutorial is based on the Spring MVC tutorial, so may want either follow it first, download its source code or if you are advanced enough, the […]

9 10 2014
Siva

Thanks for the example.. but, the github link is not working. Please update it, it ll be very useful. Thanks in advance.

9 10 2014
Jacek Milewski

fixed!

Thanks for info!

11 10 2014
Siva

could u able to give an simple example like this, of web Spring MVC + Gradle + eclipse . i Search alot, can’t spot an easy one. Thanks in advance.

24 10 2014
bunkertor

Reblogged this on Agile Mobile Developer.

25 10 2014
Spring 4: Securing MVC app | Looks OK!

[…] the login & password authentication along with roles and permissions. The code is based on the Spring boot MVC tutorial with Java Configuration (Annotation […]

30 11 2014
HTML 5 Offline Web Application with Spring Boot | Looks OK!

[…] tutorial is based on the source code from SpringBoot MVC Hello World tutorial. All instructions are performed on this […]

Give Your feedback:

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: