Refactor Spring-boot-test examples (#1328)

* Refactor Spring-boot-test examples

* Refactor Spring-boot-test examples
This commit is contained in:
Grzegorz Piwowarek
2017-03-07 19:21:40 +01:00
committed by GitHub
parent 656afd6ff5
commit 250cb7c164
3 changed files with 24 additions and 77 deletions
@@ -1,58 +1,21 @@
package org.baeldung.boot.components;
import org.baeldung.boot.exceptions.CommonException;
import org.baeldung.boot.exceptions.FooNotFoundException;
import org.baeldung.boot.model.Foo;
import org.baeldung.boot.repository.FooRepository;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.google.common.base.Preconditions;
@Component
public class FooComponent {
@Autowired
private FooRepository fooRepository;
private final static Logger logger = org.slf4j.LoggerFactory.getLogger(FooComponent.class);
public Foo getFooWithId(Integer id) {
Foo foo = null;
try {
foo = fooRepository.findOne(id);
Preconditions.checkNotNull(foo);
logger.info("Foo with Id {} found",id);
}catch(NullPointerException ex){
logger.error("Foo with Id {} was not found",id);
throw new FooNotFoundException("The given foo Id was not found");
} catch (Exception ex) {
logger.error("Error while retrieving Foo with Id {} found",id,ex);
throw new CommonException("Error while retrieving foo");
}
return foo;
public Foo getFooWithId(Integer id) throws Exception {
return fooRepository.findOne(id);
}
public Foo getFooWithName(String name) {
Foo foo = null;
try {
foo = fooRepository.findByName(name);
Preconditions.checkNotNull(foo);
logger.info("Foo with name {} found",name);
}catch(NullPointerException ex){
logger.error("Foo with name {} was not found",name);
throw new FooNotFoundException("The given foo name was not found");
} catch (Exception ex) {
logger.error("Error while retrieving Foo with name {} found",name,ex);
throw new CommonException("Error while retrieving foo");
}
return foo;
return fooRepository.findByName(name);
}
}
@@ -1,19 +1,13 @@
package org.baeldung.boot.service;
import org.baeldung.boot.components.FooComponent;
import org.baeldung.boot.exceptions.CommonException;
import org.baeldung.boot.exceptions.FooNotFoundException;
import org.baeldung.boot.model.Foo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
@RestController
@@ -22,31 +16,19 @@ public class FooService {
@Autowired
private FooComponent fooComponent;
@RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> getFooWithId(@PathVariable Integer id) {
@GetMapping("/{id}")
public ResponseEntity<?> getFooWithId(@PathVariable Integer id) throws Exception {
Foo foo = fooComponent.getFooWithId(id);
return new ResponseEntity<Foo>(foo, HttpStatus.OK);
return new ResponseEntity<>(foo, HttpStatus.OK);
}
@RequestMapping(value = "/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> getFooWithName(@RequestParam String name) {
@GetMapping("/")
public ResponseEntity<?> getFooWithName(@RequestParam String name) throws Exception {
Foo foo = fooComponent.getFooWithName(name);
return new ResponseEntity<Foo>(foo, HttpStatus.OK);
}
@ExceptionHandler(value = FooNotFoundException.class)
@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "Foo not found")
public void handleFooNotFoundException() {
}
@ExceptionHandler(value = CommonException.class)
@ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR, reason = "Common exception")
public void handleCommonException() {
return new ResponseEntity<>(foo, HttpStatus.OK);
}
}