diff --git a/README.md b/README.md index 0bbdd47..0f8ab4f 100644 --- a/README.md +++ b/README.md @@ -139,4 +139,4 @@ With Microservices, focus is shifting to getting started with developing web app - [Our Website](http://www.in28minutes.com) - [Facebook](http://facebook.com/in28minutes) - [Twitter](http://twitter.com/in28minutes) -- [Google Plus](https://plus.google.com/u/3/110861829188024231119) \ No newline at end of file +- [Google Plus](https://plus.google.com/u/3/110861829188024231119) diff --git a/Step01.md b/Step01.md index 4e841d9..34fea76 100644 --- a/Step01.md +++ b/Step01.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Set up an Maven Project with Eclipse. - Intellij Link : https://www.jetbrains.com/help/idea/2016.2/getting-started-with-maven.html#create_maven_project - Copy Two Files pom.xml and Application.java @@ -6,11 +6,11 @@ - You will be introduced to Maven - Dependency Management -##Cool thing to note! +## Cool thing to note! - Without a lot of configuration, we are up and running with a web application - Refer https://github.com/in28minutes/SpringMvcStepByStep/blob/master/Step15.md to understand the sort of stuff - web.xml, dispatcher servlet configuration, maven dependency management and plugins - that are need to launch a typical web application without Spring Boot! -##What You Will NOT Learn during this Step: +## What You Will NOT Learn during this Step: - Spring Boot does a lot of magic. This magic is called Auto Configuration. We will discuss about different terms related to Spring Boot - Starter Parent, Starter projects, Auto configuration - in depth during our first 10 steps. - As far as this step is concerned, we will focus on getting up and running with Spring Boot. We will understand all the magic a little later. - We will copy a lot of code in this step - just to avoid typos diff --git a/Step02.md b/Step02.md index cf8a8ba..092555c 100644 --- a/Step02.md +++ b/Step02.md @@ -1,7 +1,7 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Lets add a RestController with a dependency and see Spring Boot Magic live -##Theory Break : Quick Spring and Spring MVC Primer +## Theory Break : Quick Spring and Spring MVC Primer - What is dependency? - @Component - @Autowired diff --git a/Step03.md b/Step03.md index b2c5004..c917669 100644 --- a/Step03.md +++ b/Step03.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - First installment of revealing how magic happens with Spring Boot. As a Spring Boot developer, you need to understand what's happening beneath the hood of Spring Boot! - spring-boot-starter-web : starter for building applications with Spring MVC. Tomcat is default embedded container. - We already added this starter in the first step! Now we will explore the features it provides @@ -15,7 +15,7 @@ - Look at package org.springframework.boot.autoconfigure.web in spring-boot-autoconfigure-*.jar - Go to url http://localhost:8080/some-non-existing-url -##Useful Snippets +## Useful Snippets /src/main/resources/application.properties ``` logging.level.org.springframework: DEBUG diff --git a/Step04.md b/Step04.md index 7013969..30f4e37 100644 --- a/Step04.md +++ b/Step04.md @@ -1,14 +1,14 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Understand Starter Parent - How to override things defined in Starter Parent - Other starter projects -##Starter Parent +## Starter Parent - Dependency Versions - Java Versions - Default Plugins -##Other Starter Projects +## Other Starter Projects - spring-boot-starter-web-services - spring-boot-starter-test - spring-boot-starter-jdbc @@ -25,4 +25,4 @@ First Snippet spring-boot-starter-parent 1.4.0.RELEASE -``` \ No newline at end of file +``` diff --git a/Step05.md b/Step05.md index 31c1aea..ea4164e 100644 --- a/Step05.md +++ b/Step05.md @@ -1,8 +1,8 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Spring Boot vs Spring - What Spring Boot is Not! -##Spring Boot vs Spring +## Spring Boot vs Spring ### Spring - Spring is just a dependency injection framework. Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments. @@ -41,7 +41,7 @@ - Be opinionated but provide options. - Provide a range of non-functional features that are common to large classes of projects (e.g. embedded servers, security, metrics, health checks, externalized configuration). -####What Spring Boot is NOT? +#### What Spring Boot is NOT? - It’s not an app or a web server - Does not implement any specific framework - for example, JPA or JMS - Does not generate code diff --git a/Step06.md b/Step06.md index 04bd517..2d6e809 100644 --- a/Step06.md +++ b/Step06.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - We want to prepare for creating a Rest Service - Survey - Question diff --git a/Step07.md b/Step07.md index 920fa83..e955ea0 100644 --- a/Step07.md +++ b/Step07.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Create a REST Service for Retrieving all questions for a survey - Autowire SurveyService - Create @GetMapping("/surveys/{surveyId}/questions") @@ -7,7 +7,7 @@ - How does the Bean get converted to a JSON? - Auto Configuration : If Jackson jar is on the class path, message converters are auto created! (Search in log :Creating shared instance of singleton bean 'mappingJackson2HttpMessageConverter') -##Some Theory +## Some Theory - What is REST? - Architectural style for the web. REST specifies a set of constraints. - Client - Server : Server (service provider) should be different from a client (service consumer). @@ -34,7 +34,7 @@ class SurveyController { } ``` -##Exercise +## Exercise - Try to think about how the URI for retrieving the details of a specific question should be! ## Files List diff --git a/Step08.md b/Step08.md index a829409..5ecb3c2 100644 --- a/Step08.md +++ b/Step08.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Adding the second method to rest service to retrieve a specific question - This will be a very short step - http://localhost:8080/surveys/Survey1/questions/Question1 diff --git a/Step09.md b/Step09.md index 0276b92..88e75a7 100644 --- a/Step09.md +++ b/Step09.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - I hate the fact that I've to stop and start the server each time. Can somebody save me? - Yeah. Spring Boot Developer Tools - By default, any entry on the classpath that points to a folder will be monitored for changes. diff --git a/Step10.md b/Step10.md index d1655ba..bc29d42 100644 --- a/Step10.md +++ b/Step10.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Create a REST Service to add a new question to survey - @PostMapping("/surveys/{surveyId}/questions") - @RequestBody Question question diff --git a/Step11.md b/Step11.md index c2ecc45..4767c0c 100644 --- a/Step11.md +++ b/Step11.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Understand Content Negotiation - Accept:application/xml - Deliver XML Responses from the REST Services diff --git a/Step12.md b/Step12.md index 360b578..c740e4b 100644 --- a/Step12.md +++ b/Step12.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Spring Initializr - https://start.spring.io - Create a few projects! diff --git a/Step13.md b/Step13.md index c90fa3c..d588a59 100644 --- a/Step13.md +++ b/Step13.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Spring Boot Actuator - /env, /metrics, /trace, /dump, /shutdown, /beans, / autoconfig, /configprops, /mappings - HAL Browser diff --git a/Step14.md b/Step14.md index 5c2802f..291f6c1 100644 --- a/Step14.md +++ b/Step14.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Embedded servlet containers - Default Tomcat - We did not install Tomcat. Did we? Magic is done by Spring Boot! diff --git a/Step15.md b/Step15.md index e84f45f..65318af 100644 --- a/Step15.md +++ b/Step15.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Using Dynamic Configuration in your application - Customize Welcome Message - Different ways of configuration @@ -8,7 +8,7 @@ - Using Placeholders - YAML -##Snippets +## Snippets First Snippet ``` logging: diff --git a/Step16.md b/Step16.md index d867086..c5f970a 100644 --- a/Step16.md +++ b/Step16.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Understand Basics of Profiles - Setting a profile - Using -Dspring.profiles.active=prod in VM Arguments @@ -457,4 +457,4 @@ logging.level.org.springframework: DEBUG app.name=in28Minutes welcome.message=Welcome message from property file! Welcome to ${app.name} ``` - \ No newline at end of file + diff --git a/Step17.md b/Step17.md index 7a09d0e..1f0fe5f 100644 --- a/Step17.md +++ b/Step17.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Even better configuration management than @Value - Type-safe Configuration Properties - http://localhost:8080/dynamic-configuration diff --git a/Step18.md b/Step18.md index 337d9c5..37021f6 100644 --- a/Step18.md +++ b/Step18.md @@ -1,10 +1,10 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Let's switch back to tomcat first! - Get introduced to Spring Data JPA - Create a very simple example with Spring Data JPA - Use CommandLineRunner! -##Some Notes +## Some Notes - Useful Properties - spring.datasource.driver-class-name=com.mysql.jdbc.Driver - spring.datasource.url=jdbc:mysql://localhost:3306/test diff --git a/Step19.md b/Step19.md index 017c467..9bc1db7 100644 --- a/Step19.md +++ b/Step19.md @@ -1,9 +1,9 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Look at H2 Console : http://localhost:8080/h2-console - Use db url jdbc:h2:mem:testdb - Add findByRole method -##Some Notes +## Some Notes - Useful Properties - spring.datasource.driver-class-name=com.mysql.jdbc.Driver - spring.datasource.url=jdbc:mysql://localhost:3306/test diff --git a/Step20.md b/Step20.md index f494f5d..f6284d5 100644 --- a/Step20.md +++ b/Step20.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Introduction to Spring Data Rest - Hit http://localhost:8080/users in POSTMAN - http://localhost:8080/users/1 diff --git a/Step21.md b/Step21.md index fe9e9be..a25ba25 100644 --- a/Step21.md +++ b/Step21.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - First thing first : I hate the fact that we did not write tests until Step 20 of this course - I love TDD and use it in all my projects. However, when learning something new, I think it is important to focus on one thing at a time! - You can learn more about unit testing here - https://www.youtube.com/watch?v=o5k9NOR9lrI diff --git a/Step22.md b/Step22.md index f12a7f8..e573365 100644 --- a/Step22.md +++ b/Step22.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Exercise from previous step - Integration Test for POST Request - Add To do diff --git a/Step23.md b/Step23.md index 804ad4c..03b264f 100644 --- a/Step23.md +++ b/Step23.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Lets do some cleanup - Lets Refactor the SurveyControllerIT.java diff --git a/Step24.md b/Step24.md index d0e4a41..c06afb0 100644 --- a/Step24.md +++ b/Step24.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Write a Unit Test for retrieving a specific question from a survey. - Different between Unit Test and Integration Test - Basics of Mocking diff --git a/Step25.md b/Step25.md index abe0934..b2ec2bd 100644 --- a/Step25.md +++ b/Step25.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Exercise from previous step - Unit test for createTodo diff --git a/Step26.md b/Step26.md index b39f9dc..03516d0 100644 --- a/Step26.md +++ b/Step26.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Securing our services with Basic Authentication using Spring Security - Executing Requests using Basic Authentication with Postman - default user name is user diff --git a/Step27.md b/Step27.md index a69949d..5770429 100644 --- a/Step27.md +++ b/Step27.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - Configure different user roles for survey and other services - Update integration tests - Update unit tests diff --git a/Step28.md b/Step28.md index 026fca6..cbaf406 100644 --- a/Step28.md +++ b/Step28.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - A Deep Dive into Autoconfiguration - spring-boot-autoconfigure-1.4.0.RELEASE.jar - /META-INF/spring.factories diff --git a/StepReference.md b/StepReference.md index 255ddf6..f409414 100644 --- a/StepReference.md +++ b/StepReference.md @@ -1,4 +1,4 @@ -##What You Will Learn during this Step: +## What You Will Learn during this Step: - First - Second - Third @@ -13,4 +13,4 @@ Second Snippet ## Exercises -## Files List \ No newline at end of file +## Files List