| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 디자인패턴 #싱글톤
- 외장톰캣
- spring
- Mockito #Reflection #Sigleton #Test #JUnit
- tomcat
- autocomplete
- Spring Framework
- 톰캣
- LiveTemplate
- Today
- Total
목록Develop/Spring Boot (35)
자라선
Mysql Mysql 은 GPL 라이선스 이므로 상용목적을 위해서는 Enterprise Commercial 버전을 1년 반 기간으로 구매해야함 아래의 의존성은 mysql를 추가하는것이 아닌 mysql connector를 의존성으로 추가하는 것 mysql mysql-connector-java docker를 사용하여 빠른 mysql 컨테이너 서버 시작 docker run -p 3306:3306 --name mysql_boot -e MYSQL_ROOT_PASSWORD=1 -e MYSQL_DATABASE=springboot -e MYSQL_USER=thkong -e MYSQL_PASSWORD=pass -d mysql application.properties spring.datasource.url=jdbc:mys..
Database Connection Pool 데이터베이스의 커넥션의 스레드를 제어하기 위해서 최대의 Pool를 제공한다. 사용자는 DB를 사용하기 위해서는 이미 만들어져있는 커넥션을 불러오고 사용 후 커넥션을 회수 하는 개념 무조건 커넥션이 많다고 좋은것은 아니며 서버의 코어 스레드의 갯수에 따라 제한이 된다. 스프링부트는 기본 DBCP를 HikariCP를 사용하며 지원하는 DBCP는 다음과 같다. 1. HikariCP (기본) > https://github.com/brettwooldridge/HikariCP#frequently-used 2. Tomcat CP 3. Commons DBCP2 Maven 의존성 starter-jdbc 안에 Hikari CP 라이브러리도 포함되어 있다. org.springfr..
지원하는 인-메모리 데이터베이스 · H2 (추천, 콘솔 때문에...) · HSQL · Derby com.h2database h2 runtime org.springframework.boot spring-boot-starter-jdbc Spring-JDBC가 클래스패스에 있으면 자동 설정이 필요한 빈을 설정 해줍니다. o DataSource o JdbcTemplate SpringBoot의 @EnableAutoConfiguration 어노테이션에서 2개의 설정을 실행한다. org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\ org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAuto..
Cross-Origin Resource Sharing Single Origin Policy를 우회하기 위한 기법 Single Origin Policy 자바스크립트 엔진의 규약중 무조건 같은 origin에서만 요청을 보낼수 있는 규약 외부 사용자가 클라이언트의 JS를 사용하여 다른 서버의 자원을 빼돌리는 보안이 취약하다는 것을 보완 자바스크립트에서만 생기는 규약이므로 또는 css 등 과같은 html 태그는 상관없음 Origin 이란 http://localhost:8080 일 경우 프로토콜, 호스트네임, 포트로 구분 아래의 경우 JS에서 요청이 불가능하다. http://localhost:8080 -- / --> http://localhost:18080/hello Spring CORS 스프링 프레임워크에서 지..
HATEOS(헤이토스) Hypermedia As The Engine Of Application State 로이필딩이 정의한 Rest API의 제약조건 중 하나로 클라이언트가 요청을 보낸 후 응답을 받았을때 응답받은 리소스와 연관된 하이퍼링크를 제공해야하는 조건이다. HATEOAS를 적용한 응답 예시 MockHttpServletResponse: Status = 200 Error message = null Headers = [Content-Type:"application/hal+json"] Content type = application/hal+json Body = {"prefix":"Hey,","name":"thkong","_links":{"self":{"href":"http://localhost/hell..
스프링 부트는 기본적으로 에러핸들러가 등록이 되어있다. 브라우저에서 에러가 요청되면 html view로 응답오고 머신 클라이언트에서 요청하면 json으로 옴 curl http://localhost:8080 스프링 @MVC 예외 처리 방법 · @ControllerAdvice · @ExceptionHandler @ExceptionHandler 를 사용해 해당 예외가 호출되었을때 핸들링을 변경할 수 있다. 예외 핸들링을 통합하고 전역적으로 사용하고 싶다면 @ControllerAdvice 를 붙인 클래스를 새로 만들고 그 안에다 @ExceptionHandler를 정의하면 여러 Controlle에서 발생하는 에러를 핸들링할수 있다. import org.springframework.stereotype.Control..
view의 html이나 렌더링 된 문서들을 좀 더 심층적으로 테스트하기 위한 유틸리티 유닛 테스트 라이브러리 http://htmlunit.sourceforge.net/gettingStarted.html · Dependency org.seleniumhq.selenium htmlunit-driver test net.sourceforge.htmlunit htmlunit test · HTML Name 클릭 · JAVA TEST import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlForm; import com.gargoylesoftware.htmlunit.html.HtmlPage; import co..
https://www.thymeleaf.org/doc/articles/standarddialect5minutes.html 스프링 부트에서 공식적으로 지원하는 템플릿 엔진 무조건 템플릿 엔진을 사용하여 랜더링 후 결과를 출력하는 다른 템플릿 엔진과는 다르게 타임리프는 그 즉시 결과 화면을 출력할 수있어 디자이너와 협업하기에 적합하다는 장점이 있다.(타임리프에서 강조하는 장점..) 템플릿 엔진은 view만 생성하는것이 아닌 code generation이나 이메일 템플릿에 작성하는데 등등 사용한다. 정적인 html을 동적으로 사용할 수 있도록 랜더링하여 생성해준다. org.springframework.boot spring-boot-starter-thymeleaf 레이아웃 템플릿 엔진 중복되는 코드들을 incl..
webjars Jquery나 bootstrap 등 view에서 사용하는 js 라이브러리들을 메이븐으로 의존성 관리 할 수 있다. https://mvnrepository.com/artifact/org.webjars.bower/jquery org.webjars.bower jquery 3.2.1 html or jsp JS 라이브러리 통합 버전 관리 소스에 명시 되어있는 버전을 변경하기 위해서 모든 view에 찾아가 일일히 수정 해줄 필요 없이 pom.xml에 정의된 버전으로 따라가도록 하여 모든 버전을 일괄적으로 적용시킬 수 있는 방법 webjars-locator-core org.webjars webjars-locator-core 0.35 html or jsp Spring framework에 내장되어있는 리소..
Spring MVC는 기존의 MVC 디자인 패턴을 Spring Framework에 접목하여 개발된 의존성 라이브러리 이다. https://docs.spring.io/spring/docs/5.0.7.RELEASE/spring-framework-reference/web.html#spring-web import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @GetMapping("/") public String hello(){ return "hello"; } } 위 코드와..