Spring 부트강의
생성자 주입
@Service
@RequiredArgsConstructor //이방법을택했다
public class UserServiceLogic implements UserService {
<!-- @Autowired -->
private UserStore userStore;
<!-- public UserServiceLogic(UserStore userStore) {
this.userStore = userStore;
} -->
–
3가지방법
-@RequiredArgsConstructor
final 변수를 생성자 자동으로 생성해준다
-@Autowired 필드를 선언해서 주입하는방법
-public UserServiceLogic(UserStore userStore) {
this.userStore = userStore;
}
직접 자바객체로 주입하는방법
단위테스트
-@SpringBootTest // @런위드? 사용안해도됨
-@Autowired 로주입해줘야한다 // 단위테스트에서는 @RequiredArgsConstructor 주입안됨
-Junit4,5 냐 버전에 따라 어노테이션들도 다르다 !
로그
활성화가안되었다고생각했다 하지만 아니였다 ..
import static org.assertj.core.api.Assertions.assertThat;
asserThat 하고 .으로 눌러서 활성시켜준다
패키지명을 하위이름으로 작성하지못한실수를범해서
이 에러를 만났다 ..
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=…) >with your test
@BeforeEach @AfterEach
컨트롤러
- @RestController (Json 형태로 데이터 보내야하니까)
@RestController /http Json 형태로
@RequiredArgsConstructor /롬복
public class UserController {
private final UserService userService;
@PostMapping("/users")
public String register(@RequestBody User newUser){
return userService.register(newUser);
}
@GetMapping("/users/{id}")
public User find(@PathVariable String id){
return userService.find(id);
}
@GetMapping("/users")
public List<User> findAll(){
return userService.findAll();
}
}
- @PostMapping,@GetMapping / 포스트만요청만,겟요청만
- @RequestMapping /차이점은 HTTP 요청 메서드(GET, POST, PUT, DELETE 등)모두가능
@RestController
해당 클래스가 REST API를 처리하는 컨트롤러임을 나타냅니다.
@RequiredArgsConstructor
롬복 라이브러리에서 제공하는 어노테이션으로, 해당 클래스에서 사용하는 final 필드들에 대해 생성자를 자동으로 생성해줍니다.
@PostMapping(“/users”)
HTTP POST 메서드를 이용하여 /users 요청이 들어왔을 때, 해당 메서드가 처리하도록 매핑합니다.
@RequestBody User newUser
HTTP 요청의 바디 부분을 자바 객체인 User로 변환하여 메서드의 파라미터로 전달합니다. public String register(@RequestBody User newUser)
register 메서드는 User 객체를 파라미터로 받아 userService의 register 메서드를 호출하여 새로운 사용자를 등록합니다. 그 후, 등록된 사용자의 ID 값을 반환합니다. @GetMapping(“/users/{id}”)
HTTP GET 메서드를 이용하여 /users/{id} 요청이 들어왔을 때, 해당 메서드가 처리하도록 매핑합니다. {id}는 경로 변수로, 실행 시에 실제 ID 값으로 대체됩니다. @PathVariable String id
HTTP 요청의 경로 변수 중 {id}에 해당하는 값을 메서드의 파라미터로 전달합니다. public User find(@PathVariable String id)
find 메서드는 ID 값을 파라미터로 받아 userService의 find 메서드를 호출하여 해당 ID를 가진 사용자를 찾습니다. 그 후, 해당 사용자 객체를 반환합니다. @GetMapping(“/users”)
HTTP GET 메서드를 이용하여 /users 요청이 들어왔을 때, 해당 메서드가 처리하도록 매핑합니다.
public List
findAll 메서드는 userService의 findAll 메서드를 호출하여 등록된 모든 사용자 리스트를 반환합니다.
단위테스트
@SpringBootTest
@AutoConfigureMockMvc
//@WebMvcTest(UserController.class) <웹MVC더 집중해서="" 테스트="">웹MVC더>
Leave a comment