spring bootを触ってみた

27
Spring Boot 2016-12-22 onozaty

Upload: onozaty

Post on 11-Jan-2017

273 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Spring Bootを触ってみた

Spring Boot

2016-12-22

onozaty

Page 2: Spring Bootを触ってみた

Spring Boot•

• Play Framework

• Spring

• Play ScalaScala

Page 3: Spring Bootを触ってみた

Spring Boot• Spring Framework

• Spring Framework

Page 4: Spring Bootを触ってみた

• Tomcat Jettyjar(Uber JAR)

• Maven Gradle

• ( )

Page 5: Spring Bootを触ってみた

Spring Initializr• Spring Boot

WEB

Page 6: Spring Bootを触ってみた

Spring Initializr• Project

( Maven Gradle )

• STS(Spring Tool Suite)

Page 7: Spring Bootを触ってみた

Spring Initializr•

• http://start.spring.io/

Page 8: Spring Bootを触ってみた

Spring Initializr

Page 9: Spring Bootを触ってみた

Spring Initializr

Page 10: Spring Bootを触ってみた

Spring Initializr

Page 11: Spring Bootを触ってみた

Spring Initializr•

Page 12: Spring Bootを触ってみた

Hello World!Dependencies Web Project

Page 13: Spring Bootを触ってみた

Hello World!Eclipse “Hello World!!”

package com.example;

import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;

@Controllerpublic class HelloController {

@RequestMapping("/") @ResponseBody public String hello(){ return "Hello World!!"; }}

Page 14: Spring Bootを触ってみた

Hello World!Tomcat

Page 15: Spring Bootを触ってみた

• Spring BootSpring

• Web Spring MVC

Page 16: Spring Bootを触ってみた

• Spring Boot

• https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples

Page 17: Spring Bootを触ってみた

AutoConfigure• Spring Boot AutoConfigure

AutoConfigure

Page 18: Spring Bootを触ってみた

AutoConfigure• Flyway

Flyway

• H2datasource H2

DB

Page 19: Spring Bootを触ってみた

DB•

• Spring JDBC • Spring DATA JPA • MyBatis Spring

Page 20: Spring Bootを触ってみた

Spring JDBC• spring-boot-starter-jdbc

• JDBC(Apache commons DbUtils )

Page 21: Spring Bootを触ってみた

Spring JDBC@Repositorypublic class CustomerRepository {

@Autowired private NamedParameterJdbcTemplate jdbcTemplate;

public List<Customer> findAll() {

return jdbcTemplate.query( "SELECT * FROM customers ORDER BY id", new BeanPropertyRowMapper<Customer>(Customer.class)); }

public void update(Customer customer) {

jdbcTemplate.update( "UPDATE customers SET name = :name, address = :address WHERE id = :id", new BeanPropertySqlParameterSource(customer)); }}

Page 22: Spring Bootを触ってみた

Spring DATA JPA• spring-boot-starter-data-jpa

• JPA

• JPA EntityManager Interface

Page 23: Spring Bootを触ってみた

Spring DATA JPA@Entity@Table(name = "customers")@Data@AllArgsConstructor@NoArgsConstructorpublic class Customer {

@Id @GeneratedValue private Integer id;

private String name;

private String address;}

Page 24: Spring Bootを触ってみた

Spring DATA JPA

@Servicepublic class CustomerService {

@Autowired private CustomerRepository customerRepository;

public List<Customer> findAll() { return customerRepository.findAll(); }

public List<Customer> findByName(String name) { return customerRepository.findByName(name); }

public Customer create(Customer customer) { return customerRepository.save(customer); }

@Repositorypublic interface CustomerRepository extends JpaRepository<Customer, Integer> {

public List<Customer> findByName(String name);}

Page 25: Spring Bootを触ってみた

REST API• CRUD API

• RDBMS H2 • Spring DATA JPA • Flyway DB • Swagger

Page 26: Spring Bootを触ってみた

• • https://github.com/onozaty/spring-boot-sandbox/tree/

master/spring-boot-demo-20161222

Page 27: Spring Bootを触ってみた

• Spring