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()

findAll 메서드는 userService의 findAll 메서드를 호출하여 등록된 모든 사용자 리스트를 반환합니다.


단위테스트

@SpringBootTest
@AutoConfigureMockMvc
//@WebMvcTest(UserController.class) <웹MVC더 집중해서="" 테스트="">

Categories:

Updated:

Leave a comment