Skip to content

Commit

Permalink
All steps updated
Browse files Browse the repository at this point in the history
  • Loading branch information
Ranga Rao Karanam authored and Ranga Rao Karanam committed Jan 17, 2017
1 parent 4a3c6f5 commit 9350dac
Show file tree
Hide file tree
Showing 55 changed files with 7,660 additions and 6,449 deletions.
Binary file added Step01.zip
Binary file not shown.
Binary file added Step02.zip
Binary file not shown.
Binary file added Step06.zip
Binary file not shown.
Binary file added Step08.zip
Binary file not shown.
Binary file modified Step10.zip
Binary file not shown.
388 changes: 0 additions & 388 deletions Step11.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,391 +67,3 @@ Second Snippet

## Exercises
- Execute other services using xml and see what happens!

## Files List
### /pom.xml
```
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.in28minutes</groupId>
<artifactId>springboot-for-beginners-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Your First Spring Boot Example</name>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
```
### /src/main/java/com/in28minutes/springboot/Application.java
```
package com.in28minutes.springboot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
}
@RestController
class SomeBean {
@Autowired
private SomeDependency someDependency;
@RequestMapping("/")
public String index() {
return someDependency.getSomething();
}
}
@Component
class SomeDependency {
public String getSomething() {
return "Hello! Welcome!";
}
}
}
```
### /src/main/java/com/in28minutes/springboot/controller/SurveyController.java
```
package com.in28minutes.springboot.controller;
import java.net.URI;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
import com.in28minutes.springboot.model.Question;
import com.in28minutes.springboot.service.SurveyService;
@RestController
class SurveyController {
@Autowired
private SurveyService surveyService;
@GetMapping("/surveys/{surveyId}/questions")
public List<Question> retrieveQuestions(@PathVariable String surveyId) {
return surveyService.retrieveQuestions(surveyId);
}
@GetMapping(path = "/surveys/{surveyId}/questions/{questionId}")
public Question retrieveQuestion(@PathVariable String surveyId,
@PathVariable String questionId) {
return surveyService.retrieveQuestion(surveyId, questionId);
}
@PostMapping("/surveys/{surveyId}/questions")
ResponseEntity<?> add(@PathVariable String surveyId,
@RequestBody Question question) {
Question createdTodo = surveyService.addQuestion(surveyId, question);
if (createdTodo == null) {
return ResponseEntity.noContent().build();
}
URI location = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/{id}").buildAndExpand(createdTodo.getId()).toUri();
return ResponseEntity.created(location).build();
}
}
```
### /src/main/java/com/in28minutes/springboot/model/Question.java
```
package com.in28minutes.springboot.model;
import java.util.List;
public class Question {
private String id;
private String description;
private String correctAnswer;
private List<String> options;
// Needed by Caused by: com.fasterxml.jackson.databind.JsonMappingException:
// Can not construct instance of com.in28minutes.springboot.model.Question:
// no suitable constructor found, can not deserialize from Object value
// (missing default constructor or creator, or perhaps need to add/enable
// type information?)
public Question() {
}
public Question(String id, String description, String correctAnswer,
List<String> options) {
super();
this.id = id;
this.description = description;
this.correctAnswer = correctAnswer;
this.options = options;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDescription() {
return description;
}
public String getCorrectAnswer() {
return correctAnswer;
}
public List<String> getOptions() {
return options;
}
@Override
public String toString() {
return String
.format("Question [id=%s, description=%s, correctAnswer=%s, options=%s]",
id, description, correctAnswer, options);
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + (id == null ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
Question other = (Question) obj;
if (id == null) {
if (other.id != null) {
return false;
}
} else if (!id.equals(other.id)) {
return false;
}
return true;
}
}
```
### /src/main/java/com/in28minutes/springboot/model/Survey.java
```
package com.in28minutes.springboot.model;
import java.util.List;
public class Survey {
private String id;
private String title;
private String description;
private List<Question> questions;
public Survey(String id, String title, String description,
List<Question> questions) {
super();
this.id = id;
this.title = title;
this.description = description;
this.questions = questions;
}
public String getId() {
return id;
}
public String getTitle() {
return title;
}
public String getDescription() {
return description;
}
public List<Question> getQuestions() {
return questions;
}
@Override
public String toString() {
return String.format(
"Survey [id=%s, title=%s, description=%s, questions=%s]", id,
title, description, questions);
}
}
```
### /src/main/java/com/in28minutes/springboot/service/SurveyService.java
```
package com.in28minutes.springboot.service;
import java.math.BigInteger;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.springframework.stereotype.Component;
import com.in28minutes.springboot.model.Question;
import com.in28minutes.springboot.model.Survey;
@Component
public class SurveyService {
private static List<Survey> surveys = new ArrayList<>();
static {
Question question1 = new Question("Question1",
"Largest Country in the World", "Russia", Arrays.asList(
"India", "Russia", "United States", "China"));
Question question2 = new Question("Question2",
"Most Populus Country in the World", "China", Arrays.asList(
"India", "Russia", "United States", "China"));
Question question3 = new Question("Question3",
"Highest GDP in the World", "United States", Arrays.asList(
"India", "Russia", "United States", "China"));
Question question4 = new Question("Question4",
"Second largest english speaking country", "India",
Arrays.asList("India", "Russia", "United States", "China"));
List<Question> questions = new ArrayList<>(Arrays.asList(question1,
question2, question3, question4));
Survey survey = new Survey("Survey1", "My Favorite Survey",
"Description of the Survey", questions);
surveys.add(survey);
}
public List<Survey> retrieveAllSurveys() {
return surveys;
}
public Survey retrieveSurvey(String surveyId) {
for (Survey survey : surveys) {
if (survey.getId().equals(surveyId)) {
return survey;
}
}
return null;
}
public List<Question> retrieveQuestions(String surveyId) {
Survey survey = retrieveSurvey(surveyId);
if (survey == null) {
return null;
}
return survey.getQuestions();
}
public Question retrieveQuestion(String surveyId, String questionId) {
Survey survey = retrieveSurvey(surveyId);
if (survey == null) {
return null;
}
for (Question question : survey.getQuestions()) {
if (question.getId().equals(questionId)) {
return question;
}
}
return null;
}
private SecureRandom random = new SecureRandom();
public Question addQuestion(String surveyId, Question question) {
Survey survey = retrieveSurvey(surveyId);
if (survey == null) {
return null;
}
String randomId = new BigInteger(130, random).toString(32);
question.setId(randomId);
survey.getQuestions().add(question);
return question;
}
}
```
### /src/main/resources/application.properties
```
logging.level.org.springframework: DEBUG
```
Loading

0 comments on commit 9350dac

Please sign in to comment.