Portfolio/Spring Boot
-
스프링 부트 14일차 - EntityManager, @Entity, @Table, @ColumnPortfolio/Spring Boot 2019. 5. 27. 00:12
1. Spring JPA에서 EntityManager는 가장 핵심적인 요소entityManager.persist(??); 로 ??를 DB에 저장할 수 있음. 2. PostgreSQL을 쓰면 경고메시지가 뜨는데 없애려면spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true를 추가해줘야함.이유 : createClob()가 implement 되지 않았기 때문 -_- 3. 트랜젝션 처리를 위해서는 클래스나 메소드에 @Transactional 을 붙여주면 됨. 4. Hibernate의 가장 핵심적인 요소는 Session임.session.save(??)를 하면 ??가 DB에 저장 Session을 가져오는 곳은 EntityManager를 통해서 가..
-
스프링 부트 13일차 - Spring Data JPAPortfolio/Spring Boot 2019. 5. 26. 17:18
1. 슬라이싱 테스트는 이 레파지토리와 관련된 빈만 등록하여 테스트 하는 것 (당연히 전체 테스트보다 가벼울 듯) 2. Postgres DB 도커에 띄우기docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=jun -e POSTGRES_DB=springboot --name psql_boot -d postgres POSTGRES_PASSWORDPOSTGRES_USERPOSTGRES_DB 같은 것은 이미 정의된 환경 변수 이기 때문에 오타 주의해야함.값은 내가 하고싶은대로 해도 되고, 상용서버라면 PASSWORD 조심--name은 Docker에서 부를 컨테이너의 이름이고, -d는 어떤 이미지를 사용할지 정하는 것임. 3. JPA 설정시 app..
-
스프링 부트 12일차 - CORS, 인메모리 DB(H2), DBCP, JdbcTemplate, Spring Data JPAPortfolio/Spring Boot 2019. 4. 18. 19:17
1. Origin은 - URI 스키마(http, https) - hostname (naver.com, localhost, xx.xx.xx.xx) - Port(80, 443, 8080) 2. 스프링 부트에서 CORS를 지원해주기 위해서는 크게 2가지 방법이 있음.Mapping이나 Controller에 걸고싶다면 @CrossOrigin(origins = "http://localhost:8080") 같은 식으로 작성 가능만약 해당 애플리케이션 전체에 걸고싶다면 다음과 같이 @Configuration 작성@Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistr..
-
스프링 부트 11일차 - index 페이지, 파비콘, 템플릿 엔진, HtmlUnit, ExceptionHandlerPortfolio/Spring Boot 2019. 4. 16. 21:57
1. index 페이지를 추가하고 싶으면 앞서 배웠던 정적 페이지들의 경로에 index.html 혹은 index.템플릿 같은 식으로 파일을 만들면 됨.classpath:/static/index.htmlclasspath:/public/index.htmlclasspath:/resources/index.htmlclasspath:/META-INF/resources/index.html 2. 파비콘은 위에 있는 경로에 favicon.ico 라는 이름으로 ico 파일을 넣어주면 됨. 파비콘은 favicon.io에서 만들 수 있음. 다른 그림파일도 파비콘으로 만들 수 있음. * 파비콘이 안바뀌면 다음 링크 참고 : https://stackoverflow.com/questions/2208933/how-do-i-force..
-
스프링 부트 10일차 - ViewResolve, Static Resource, WebJarPortfolio/Spring Boot 2019. 4. 15. 21:09
1. Accept Header에 따라 요청의 응답이 어떤 타입인지 결정됨. (Accept는 클라이언트가 서버에게 이러이러한 데이터를 원한다고 알려주는 것임)EX) .accept(MediaType.APPLICATION_JSON_UTF8) 2. 근데 Accept가 없는 요청도 날아오는데, 그럴때 query parameter로 ?format=xxx 같은 식으로 url에 표현되기도 함. 3. JSON 데이터와 XML 데이터를 받게될 때 그 데이터에 대해 서로 변환시켜줄 컨버터가 필요하다. 그때 사용할 수 있는 컨버터가 다음 컨버터이다. com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.9.6 jackson-dataformat-xml 컨버터를 사용하여 두 데이..
-
스프링 부트 9일차 - Spring-Boot-Devtools, 스프링 웹 MVCPortfolio/Spring Boot 2019. 4. 9. 22:55
1. 사용하려면 다음 의존성 추가 org.springframework.boot spring-boot-devtools 2. 다음과 같이 properties를 설정한다.static {Map properties = new HashMap();properties.put("spring.thymeleaf.cache", "false");properties.put("spring.freemarker.cache", "false");properties.put("spring.groovy.template.cache", "false");properties.put("spring.mustache.cache", "false");properties.put("server.servlet.session.persistent", "true");p..
-
스프링 부트 8일차 - 스프링 부트 테스트Portfolio/Spring Boot 2019. 4. 8. 01:04
1. spring-boot-starter-test를 의존성에 추가 org.springframework.boot spring-boot-starter-test test 테스트 시에만 실행되어야 하기 때문에 스코프는 test로 지정 2. 테스트 코드를 만들때는 Alt + Insert에서 Test를 선택해서 만들면 편함 * 참고 : https://www.jetbrains.com/help/idea/create-tests.html 3. webEnvironment를 Mock으로 하면 다음과 같은 코드로 테스트할 수 있다.package me.jun.lee.sample; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.b..
-
스프링 부트 7일차 - 스프링 부트 Jar, SpringApplication, 로거Portfolio/Spring Boot 2019. 4. 7. 00:25
1. mvn package를 하면 하나의 JAR 파일이 생김 그 파일을 실행하려면 java -jar xxx.jar 로 실행하면됌 2. 1은 인텔리제이에서는 Maven의 Lifecycle에서 조작할 수 있음. package를 만들면 그 파일은 프로젝트의 target에 생성됨. 3. Java 스펙에는 Jar에 내장된 또다른 Jar를 로딩하는 표준적인 방법은 없음. 스프링 부트에서는 내장 Jar를 구분해서 로딩시켜줌. * uber Jar 라는 것도 있었으나 해당 Jar은 내장된 Jar에 대해서 구분해서 로딩시켜주는게 아니라 그냥 하나로 압축해버리는 것이었기 때문에 구분이 잘 되지 않았음. 참고 : https://docs.spring.io/spring-boot/docs/current/reference/html/..