Pada tutorial kali ini kita akan membahas tentang Spring-Boot. Spring boot digunakan untuk membuat standalone application berbasis Spring Framework.
Kelebihan spring boot antara lain :
- Dapat membuat aplikasi spring secara cepat.
- Tidak perlu menggunakan XML configuration. Konfigurasi dapat langsung diinject di java class nya. Konfigurasi cukup dilakukan di pom.xml saja
- Tidak perlu menggunakan server (seperti Tomcat atau jetty). Running menggunakan file jar hasil packing
Sekarang akan kita coba membuat contoh aplikasi Spring MVC menggunakan spring-boot.
Untuk mempermudah compiling dan packaging dapat menggunakan Maven atau Gradle.
Karena saya lebih familiar, maka digunakan maven saja.
di pom.xml tambahkan dependency spring-boot
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.1.6.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
Kemudian tambahkan dependency actuator module. Modul ini berisi embbeded tomcat/jetty.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Seperti biasa di spring mvc pattern kita buat class class berikut (model, service, controller).
Model
package com.nostratech.app;
import java.io.Serializable;
public class Person implements Serializable {
private Integer id;
private String name;
private String address;
public Person() {}
public Person(Integer id, String name, String address) {
this.id = id;
this.name = name;
this.address = address;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("Person{");
sb.append("id=").append(id);
sb.append(", name='").append(name).append('\'');
sb.append(", address='").append(address).append('\'');
sb.append('}');
return sb.toString();
}
}
Service
package com.nostratech.app;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class PersonService {
private List<Person> personList;
public PersonService(){
if(personList == null) personList = new ArrayList<Person>();
personList.add(new Person(1, "andri", "jakarta"));
personList.add(new Person(2, "budi", "bandung"));
}
public Integer getId(){
return 10;
}
public List<Person> findAllPerson(){
return personList;
}
}
Controller
package com.nostratech.app;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
@RequestMapping(value = "/persons")
public class PersonController {
@Autowired
private PersonService personService;
@RequestMapping("/")
public String index() {
return "hello person controlller "+personService.getId();
}
@RequestMapping("/findAll")
public String findAll() {
return "Find all person : \n"+personService.findAllPerson();
}
}
Kemudian buat class Application.
Untuk running aplikasi spring nya class ini harus memanggil SpringApplication.run().
package com.nostratech.app;
import java.util.Arrays;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
}
}
Tambahkan tag berikut :
@Configuration : menunjukkan bahwa class tersebut didefinisikan di application context.
@EnabledAutoConfiguration : meload semua bean bean yang sudah didefinisikan
@ComponentScan : scan semua component, configuration, service yang berada dalam satu package
tambahkan definisi class tersebut di pom.xml
<properties>
<start-class>com.nostratech.app.Application</start-class>
</properties>
class Application ini yang akan otomatis distart ketika aplikasi spring nya sudah running.Compile aplikasinya dengan menjalankan : mvn clean install
semua class dan library akan dipackaging dalam satu file jar.
Sekarang jalankan aplikasinya lewat command java -jar
java -jar target/sample-spring-boot-1.0.0.jar
Berikut ini tampilan di Console ketika start aplikasi
Begitu spring boot sudah distart maka embeded tomcat akan otomatis running. default port 8080
Kemudian kita coba panggil controllernya localhost:8080/persons (panggil controller person)
Sekian tutorial dari saya.
Terima kasih
Mas, bukannya spring-boot-starter-actuator itu seperti module tambahan untuk support di production ya?
ReplyDeletemisalnya seperti mengetahui berapa thread yang sedang berjalan.
http://docs.spring.io/spring-boot/docs/1.2.5.RELEASE/reference/htmlsingle/#production-ready
Dan untuk embedded Tomcat/Jetty ada di dalam module spring-boot-starter-web, CMIIW.