29
SPRING BOOT Naphachara Rattanwilai

Spring Boot Tutorial

Embed Size (px)

Citation preview

Page 1: Spring Boot Tutorial

SPRING BOOTNaphachara Rattanwilai

Page 2: Spring Boot Tutorial

Agenda

• Why using Spring Boot?

• Spring Boot Providing

• Run With Spring Boot• Using Rest Controller + Dojo

• Using Data JPA

• Using Spring Security

• Using Testing

• Deploy on Web Server

• How to customize (Extension)• Using Properties File

• Using YAML

Page 3: Spring Boot Tutorial

Why using Spring Boot?

• Easy to create stand alone application.

• Less Configuration

• Running as micro service.

• Providing Many features• Thymeleaf

• Spring Data JPA

• Spring Security

• Testing

Page 4: Spring Boot Tutorial

Spring Boot Providing

• Spring-boot-starter

• Spring-boot-starter-actuator

• Spring-boot-starter-aop

• Spring-boot-data-jpa

• Spring-boot-starter-security

• Spring-boot-starter-test

• Spring-boot-starter-web

• Spring-boot-starter-thymeleaf

• Etc.

Page 5: Spring Boot Tutorial

Database

Lo

gg

ing

Template Engine

Java UtilLogging

Logback

Log4J

Log4J2

Free Maker Thymeleaf Groovy Vlocity

Spring Core 4.1.x

SQL

JDBCData JPA

No SQLMongo

DBNEO 4J Solr

Elastic search

Redis Gemfire

Sp

rin

g S

ecu

rity

Page 6: Spring Boot Tutorial

Run With Spring Boot

• Config Maven• Parent

• Adding Dependency

• Adding Properties

• Java.version

• Start-class

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.2.1.RELEASE</version>

</parent>

<properties><java.version>1.7</java.version><start-class>tutorial.spring4.StandAloneApp</start-class>

</properties>

Page 7: Spring Boot Tutorial

@SpringBootApplicattion

@Configuration

@EnableConfiguration

@ComponentScan

Page 8: Spring Boot Tutorial

Static Page

• META-INF/resources

• /resources/

• /static/

• /public/

Page 9: Spring Boot Tutorial

Lab 1 – Start Spring Boot

• Running Spring Boot Stand Alone

Page 10: Spring Boot Tutorial

Lab 2 – Hello World

• Create RestController

• Create Thymeleaf Page

• Create Page• Calling Rest with Dojo

Page 11: Spring Boot Tutorial

Using Spring Data JPA

• Adding Config on Maven

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>

<dependency><groupId>org.hsqldb</groupId><artifactId>hsqldb</artifactId><version>2.3.2</version>

</dependency>

Page 12: Spring Boot Tutorial

Using Spring Data JPA (Cont.)

• Adding Annotation• @EnableJpaRepositories

Page 13: Spring Boot Tutorial

Spring Data JPA Repositories

• Create Interface

• Extends CrudRepository

Page 14: Spring Boot Tutorial

Lab3 Create Page to Load Data

• Config Spring Data JPA

Page 15: Spring Boot Tutorial

QueryDSL

• Config Dependency<dependency>

<groupId>com.mysema.querydsl</groupId><artifactId>querydsl-core</artifactId><version>${querydsl.version}</version>

</dependency>

<dependency><groupId>com.mysema.querydsl</groupId><artifactId>querydsl-apt</artifactId><version>${querydsl.version}</version>

</dependency>

<dependency><groupId>com.mysema.querydsl</groupId><artifactId>querydsl-jpa</artifactId><version>${querydsl.version}</version>

</dependency>

Page 16: Spring Boot Tutorial

QueryDSL (Cont.)

• Generate Meta Class <plugin><groupId>com.mysema.maven</groupId><artifactId>apt-maven-plugin</artifactId><version>1.1.3</version><executions>

<execution><goals><goal>process</goal>

</goals><configuration><outputDirectory>src/main/generated-sources</outputDirectory><processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>

</configuration></execution>

</executions></plugin>

Page 17: Spring Boot Tutorial

QueryDSL (Cont.)

• Extends QueryDslPredicateExecutor<T>

Page 18: Spring Boot Tutorial

Lab4 Search Page*

• Customize Spring Data JPA

• Using QueryDSL

Page 19: Spring Boot Tutorial

Using Spring Security

• Adding Config Maven

• Adding Annotation• @EnableWebMvcSecurity

• Create Class extends WebSecurityConfigurerAdapter

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>

</dependency>

Page 20: Spring Boot Tutorial

Using Spring Security(2)

• Adding Configure Method• protected void configure(HttpSecurity http)

• protected void configure(AuthenticationManagerBuilder auth)

Page 21: Spring Boot Tutorial

Lab 5 – Basic Authentication

• Create Login Page

• Create Result Page

• Create Logout Page

Page 22: Spring Boot Tutorial

Lab6 –Authentication With Database

• Checking User from Database

Page 23: Spring Boot Tutorial

Testing

• Adding Config on Maven

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-testing</artifactId>

</dependency>

Page 24: Spring Boot Tutorial

Lab 7 - Testing

• Create Unit Testing for all classes

Page 25: Spring Boot Tutorial

Deploy on Web Server

• Adding • Extended SpringBootServletInitializer

• Changing Maven to building war file

Page 26: Spring Boot Tutorial

Customize

• Create application.properties• Customize

Page 27: Spring Boot Tutorial

Lab8 Deploy

• Running Application on Web Server

Page 28: Spring Boot Tutorial

Q&A

Page 29: Spring Boot Tutorial

Thank you