백기선(인프런 강의)
-
Spring Web MVC - ViewResolver백기선(인프런 강의)/스프링 부트 개념과 활용 2020. 4. 22. 12:28
ContentNegotiatingViewResolver ViewResolver 중에 하나로, 들어오는 요청의 accept header( 클라이언트가 서버에게 원하는 응답을 요청하는 것 )에 따라 응답이 달라진다. 어떤한 요청이 들어오면 그 요청의 응답을 만들 수 있는 모든 view를 찾아내고, 최종적으로 accept header의 view 타입과 비교하여 선택한다. accpet header가 없는 요청인 경우 format이라는 매개변수를 사용한다. @RunWith(SpringRunner.class) @WebMvcTest(SrpingController.class) public class SrpingControllerTest { @Autowired MockMvc mockMvc; @Test public voi..
-
Spring Web MVC -HttpMessageConverters백기선(인프런 강의)/스프링 부트 개념과 활용 2020. 4. 22. 08:34
https://docs.spring.io/spring/docs/5.0.7.RELEASE/spring-framework-reference/web.html#spring-web https://docs.spring.io/spring/docs/5.0.7.RELEASE/spring-framework-reference/web.html#mvc-config-message-converters HttpMessageConverters Spring Framework에서 제공하는 인터페이스이며 Spring MVC의 일부분이다. HTTP 요청 본문을 객체로 변경하거나, 객체를 HTTP 응답 본문으로 변경할 때 사용한다. @RequestBody / @ResponseBody 와 함께 사용된다. 데이터 요청으로 들어올 때 요청의 본문에..
-
Spring-Boot-Devtools백기선(인프런 강의)/스프링 부트 개념과 활용 2020. 4. 21. 08:38
Spring-Boot-Devtools 스프링 부트가 제공하는 optional한 tool이다. 기본적으로 적용되는 것이 아니다. 아래와 같이 의존성을 추가해줘야한다. 아래의 의존성을 추가하게되면 기본적으로 제공되는 properties들이 바뀌는 것들이 존재한다. 캐쉬관련된 항목들이 개발환경에 맞게 변경이 된다.(캐쉬관련된 항목들이 false로) org.springframework.boot spring-boot-devtools re-start 코드가 수정이 될 때 스프링 애플리케이션이 재실행이된다. restart classloader를 사용하여, 애플리케이션을 실행 후, 코드 수정하고 빌드만 해주면, 서버가 재시작 된다. 이것이 restart기능이다. 스프링 부트는 클래스로더를 2개 사용한다. base cl..
-
테스트백기선(인프런 강의)/스프링 부트 개념과 활용 2020. 4. 16. 23:43
테스트란 테스트 파일에는 @SpringBootTest가 아래와같이 붙어있다. @SpringBootTest 어노테이션은 @SpringBootApplication 어노테이션이 붙어있는 스프링 메인 애플리케이션을 찾아간다. 이후 메인부터 시작하는 모든 Bean을 찾는다. 다음으로는 테스트용 애플리케이션 context를 만들면서 Bean을 등록해준다. 이 중에 MockBean에 해당되는 Bean을 찾아서 교체를 해준다. 교체된 MockBean은 테스트마다 리셋이된다. 테스트 예시 코드 @RestController public class SampleController { @Autowired private SampleService sampleService; @GetMapping("hello") public Stri..
-
스프링 부트 기본 로거 설정백기선(인프런 강의)/스프링 부트 개념과 활용 2020. 4. 16. 09:03
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html - 커스텀로그 설정 파일 사용 https://docs.spring.io/spring/docs/5.0.0.RC3/spring-framework-reference/overview.html#overview-logging - spring 5 로거 관련 변경 사항 스프링 부트가 사용하는 로깅 원리 스프링 보트 기본적으로 Commons logging을 사용한다. 리소스 코드에서도 SLF4j를 사용하면 됨 SLF4j가 더 안정적인데 Commons logging을 사용한는 이유는 스프링 코어를 개발 할 때 SLF4j가 존재하지 않아서이이다. CommonsLogging과 SL..
-
프로파일백기선(인프런 강의)/스프링 부트 개념과 활용 2020. 4. 14. 09:04
백기선님이 자기가나오는 화면이 크다고 자책하시면서 작게 하셨다. 예전부터 느꼈던건데.. 수정해주시다니 감사할따름이다. 프로파일 이것을 보기 전 전에 정리한 내용을 한 번 돌아보자 2020/03/17 - [백기선 Spring/스프링 프레임워크 핵심 기술] - IoC 컨테이너와 빈 (3) - Enviornment - 프로파일 특정 프로파일에만 Bean을 등록하고 싶거나, 애플리케이션의 동작을 특정 프로파일일 때만 동작할 때 사용 @Configuration이란 어노테이션기반 환경구성을 도운다., 클래스가 하나이상의 @Bean 메소드를 제공하고 스프링 컨테이너가 Bean정의를 생성하고 런타임시 그 Bean들의 요청을 처리할 것을 선언하게 된다. spring.profiles.active(프로파일 활성화) 각각 프..
-
외부 설정 2부백기선(인프런 강의)/스프링 부트 개념과 활용 2020. 4. 13. 22:10
@ConfigurationProperties properties이 아래와같이 시작을 하면 이것을 묶어서 Bean으로 등록이 가능하다. properties의 값은 기본적으로 문자열이다. @ConfigurationProperties 을 붙여주고 key값을 적어준다.(key값은 properties에 만들어둔 jinseok) 그리고 @Component를 붙여 Bean으로 등록해주고 아래와같이 getter, setter를 만들어준다. @Component @ConfigurationProperties("jinseok") public class JinseokProperties { String name; int age; String fullName; public String getName() { return name; ..
-
외부 설정 1부백기선(인프런 강의)/스프링 부트 개념과 활용 2020. 4. 13. 08:27
외부 설정 application.properties key - value 형태로 properties에 작성 @Component public class SampleRunner implements ApplicationRunner{ @Value("${jinseok.name}") private String name; @Override public void run(ApplicationArguments args) throws Exception { System.out.println("====================================="); System.out.println(name); System.out.println("====================================="); } } ..