SpringBoot 29

MySQL,PostgreSQL

스프링부트는 기본적으로 HikariCP 를 사용 https://github.com/brettwooldridge/HikariCP#frequently-used 이부분은 스프링 부트 로딩시 로그에서 많이 보아왔다. 스프링 부트에서 JDBC 사용을 하기 위해 필요한 의존은 spring-boot-starter-jdbc 이다. org.springframework.boot spring-boot-starter-jdbc application.properties 에서 설정한다. 즉 자동 설정 기능을 사용한다는 이야기이다. spring.datasource.커넥션풀드라이버이름.설정 spring.datasource.데이터베이스설정 #DBCP spring.datasource.hikari.maximum-pool-size=4 #Da..

SpringBoot 2020.11.07

CORS

프로젝트를 진행하며 CORS 이슈에 직면해서 해결한 바가 있기때문에, 공통적인 자원들에 CORS 를 적용하는 법은 알고 있다 CORS SOP : Single Origin Policy CORS : Cross-Origin Resource Sharing 으로 SOP 를 우회하기 위함 Origin http https 등의 URI 스키마 + hostname + 포트 를 조합한 것 SOP 는 하나의 오리진이 다른 오리진을 호출할 수 없다는 개념 스프링 부트에서 해야할 일은 @CrossOrigin 설정 컨트롤러의 메서드에 @CrossOrigin 을 선언, origins 속성에 허용할 Origin 을 기입한다. @RestController public class SampleController { @CrossOrigin..

SpringBoot 2020.11.07

Spring HATEOAS

스프링 웹 Mvc 와 관련된 Spring HATEOAS 에 대해 알아본다. spring hateoas : HATEOAS 를 쉽게 구현하게 해주기 위한 툴 HATEOAS : Hypermedia As The Engine Of Application State REST API 작성시 리소스와 연결된 링크 정보 를 같이 제공 클라이언트는 링크정보를 바탕으로 리소스에 접근함 루트 페이지 접속 > 페이지:SELF 에서 추가 링크 정보 : 페이지 , 경로 : /detail 이렇게 하나의 자원과 연관된 링크 정보를 클라이언트에게 제공하는 식이다. org.springframework.boot spring-boot-starter-hateoas 제공해주는 의존은 ObjectMapper, LinkDiscovers 스프링 부트의..

SpringBoot 2020.11.07

ExceptionHandling

ExceptionHandling 스프링 부트에서는 기본적인 ErrorHandler 가 등록 되어 있음 이 기본적 예외 처리기의 이름이 BasicErrorController 이다. 웹 에서 뿌리는 기본 에러페이지 또한 BasicErrorController가 던져주는 것이다. 상태코드에 대한 에러페이지를 만들어주고 싶다면? classpath:static/error/상태코드값.html classpath:static/error/앞번호xx.html : 해당 번호대의 상태 페이지에 대한 에러페이지 static/error/400.html : 400 응답코드에 대한 에러페이지 static/error/4xx.html : 400 번대 응답코드에 대한 에러페이지 이렇게 간단히 에러코드를 처리할 수 있다는게 놀랍다.

SpringBoot 2020.11.06

HTMLUnit

HTMLUnit 스프링 부트에서 자동설정 지원 중이므로 의존성만 추가하자. org.seleniumhq.selenium htmlunit-driver test net.sourceforge.htmlunit htmlunit test HTMLUnit 은 HTML 을 단위테스트하기위한 툴이다. WebClient 를 이용해 HtmlPage 를 받아서 사용한다. @RunWith(SpringRunner.class) @WebMvcTest(SampleController.class) @AutoConfigureMockMvc class SampleControllerTest { @Autowired private MockMvc mockMvc; @Autowired private WebClient webClient; @Test publ..

SpringBoot 2020.11.06

Thymeleaf

템플릿 엔진 주로 View를 만드는데 사용 된다. 이메일 템플릿양식 등에 쓰임 스프링 부트가 자동설정을 지원하는 템플릿엔진 FreeMaker Groovy Thymeleaf Mustache JSP 를 권장하지 않는 이유는 JSP 사용시 JAR 패키징이 아닌 WAR 패키징을 해야하기 때문이다. 하지만 스프링 부트는 Jar 파일을 이용한 빠른 배포와 패키징을 근간으로 하고 있기에 철학과도 맞지 않다. 타임리프는 독자적인 방법으로 View 를 만들어낸다. 타임리프는 테스트 코드 작성시 MockMvcResultHandler 로 print 를 하면 템플릿 파일 내용을 볼 수 있다! @RunWith(SpringRunner.class) @WebMvcTest(SampleController.class) @AutoConfi..

SpringBoot 2020.11.06

HTTPS, HTTP, Connector 추가 설정

application.properties ## ssl 설정 스프링 부트 커넥터는 기본 1개이므로 https 를 설정하면 https 로만 받는다. server.ssl.key-store=keystore.p12 server.ssl.key-store-password=123456 server.ssl.key-store-type=PKCS12 server.ssl.key-alias=spring HTTP 통신을 위한 Connector 추가 설정 @Bean public ServletWebServerFactory serverFactory(){ TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); tomcat.addAdditionalTomcatC..

SpringBoot 2020.10.31

Boot 의 Test

테스트의 시작은 의존성 확인부터 시작한다. 스프링부트 테스트 구동 클래스는 SpringRunner @SpringBootTest org.springframework.boot spring-boot-starter-test test @SpringBootTest(webEnvironment = SpringBootTest.webEnvironment.MOCK) 스프링 부트는 MockMvc 를 만들때에 @SpringBootTest에 속성으로 webEnvironment 를주어 Mock 환경을 만든다. @AutoConfigureMockMvc 는 MockMvc 를 자동으로 생성해준다. @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.We..

SpringBoot 2020.10.08