Spring Boot Tutorial

  • View
    1.017

  • Download
    17

  • Category

    Software

Preview:

Citation preview

SPRING BOOTNaphachara Rattanwilai

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

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

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.

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

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>

@SpringBootApplicattion

@Configuration

@EnableConfiguration

@ComponentScan

Static Page

• META-INF/resources

• /resources/

• /static/

• /public/

Lab 1 – Start Spring Boot

• Running Spring Boot Stand Alone

Lab 2 – Hello World

• Create RestController

• Create Thymeleaf Page

• Create Page• Calling Rest with Dojo

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>

Using Spring Data JPA (Cont.)

• Adding Annotation• @EnableJpaRepositories

Spring Data JPA Repositories

• Create Interface

• Extends CrudRepository

Lab3 Create Page to Load Data

• Config Spring Data JPA

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>

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>

QueryDSL (Cont.)

• Extends QueryDslPredicateExecutor<T>

Lab4 Search Page*

• Customize Spring Data JPA

• Using QueryDSL

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>

Using Spring Security(2)

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

• protected void configure(AuthenticationManagerBuilder auth)

Lab 5 – Basic Authentication

• Create Login Page

• Create Result Page

• Create Logout Page

Lab6 –Authentication With Database

• Checking User from Database

Testing

• Adding Config on Maven

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

</dependency>

Lab 7 - Testing

• Create Unit Testing for all classes

Deploy on Web Server

• Adding • Extended SpringBootServletInitializer

• Changing Maven to building war file

Customize

• Create application.properties• Customize

Lab8 Deploy

• Running Application on Web Server

Q&A

Thank you