Web Application using Spring Tool Suite,Gradle and Scala

Step 1: Install Gradle on your windows system.
            Download link: http://gradle.org/ (version 2.2.1)

Set the Path environment variable to: your path\gradle-2.2.1-all\gradle-2.2.1\bin



Step 2: Install Scala on your system.
           Download Link: http://www.scala-lang.org/download/  (version 2.11.4)


As above set the Path environment variable to : C:\Program Files\scala\bin;


Step 3: Install  Spring STS with scala IDE plug in
             Download Link : http://spring.io/tools/sts

Step 4: clone this Hello-World github code in your system
             Link : git clone https://github.com/vaibhavtupe/hello-world

Important files:

build.gradle
Mention your gradle version correctly in this file.
And also mention spring boot application main class file.


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

apply plugin: 'java'
apply plugin: 'scala'
apply plugin: 'eclipse'
apply plugin: 'eclipse-wtp'
apply plugin: 'idea'
apply plugin: 'spring-boot'

jar {
    baseName = 'hello'
    version =  '0.1.0'
}

bootRepackage {
    mainClass = 'hello.HelloWebApplication'
}

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

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web:1.2.1.RELEASE")
    testCompile("org.springframework.boot:spring-boot-starter-test")
    compile("org.scala-lang:scala-library:2.11.4")
    compile("org.webjars:bootstrap:3.1.1")
    testCompile("junit:junit")
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.2.1'
}


HelloWebApplication.scala

package hello

import org.springframework.boot.SpringApplication
import org.springframework.context.annotation._
import org.springframework.boot.autoconfigure.EnableAutoConfiguration

/**
 * This object bootstraps Spring Boot web application.
 * Via Gradle: gradle bootRun
 *
 * @author vaibhav
 * @since 1.0
 */

@EnableAutoConfiguration
object HelloWebApplication {

 def main(args: Array[String]) {
    SpringApplication.run(classOf[HelloConfig]);
 }
}


HelloConfig.scala


package hello

import org.springframework.context.annotation.{Configuration, ComponentScan}
import org.springframework.boot.autoconfigure.EnableAutoConfiguration
import org.springframework.boot;
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.ResponseBody; 
import org.springframework.stereotype.Controller; 

/**
 * This config class will trigger Spring @annotation scanning and auto configure Spring context.
 *
 * @author vaibhav
 * @since 1.0
 */
 
@Controller
@Configuration
@EnableAutoConfiguration
@ComponentScan
class HelloConfig {

@RequestMapping(Array("/"))
@ResponseBody
def home(): String = "Hello World!"

}

Step 5 : Go to the cloned directory hello-world/Hello-Scala from command prompt
            Now do 
            gradle build
       
      After successful build,

       gradle run



Step 6 : Check the browser localhost:8080
     


Step 7 : Now same thing we can do on AWS EC2 instance using putty,  
              Download and install gradle, scala on EC2 instance
              Do step 4 an step 5 again on EC2 instance.
           
Step 8 : Now go in your local machine browser and hit the URL
             
              Your EC2 instance public DNS:8080



You have successfully created simple hello-world web application using spring tool suite and deployed it on Amazon EC2 instance.




Comments

Popular posts from this blog

Elasticsearch JIRA Alert and Email Notification using ElastAlert Library

Using Logstash for large scale log analysis along with MongoDB