Upload
naphachara-rattanawilai
View
1.017
Download
17
Embed Size (px)
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