본문 바로가기

분류 전체보기363

@Component, @Repository, @Service, @Controller 설명 및 차이점 @Component, @Repository, @Service, @Controller 설명 및 차이점 @Component 는 스프링에서 관리하는 컴포넌트라는 것이다. @Repository, @Service, @Controller 는 컴포넌트의 하위 개념이다. 전부 Spring 에서 관리하는 컴포넌트들이며, @Repository 는 영속성을 담당하겠다는 것을 명시하는 컴포넌트 @Service 는 비즈니스 로직을 담당하겠다는 컴포넌트. @Controller 는 Handler Mapping 을 위해 사용된다고 해야하나? DispatchServlet 에서 url 이 들어오면 해당 controller 의 RequestMapping 을 통해 맵핑시켜 줌. 이렇게 세분화하는 것이 유지 보수성이나 의미를 전달하기에 더 .. 2020. 12. 25.
Spring filter 와 interceptor 설명 filter 와 interceptor filter 응답을 filtering 하는 역할 tomcat 같은거 보면 web.xml 에 filter 를 등록해줌. 인코딩 변환 등이 적용되지. interceptor DispatchServlet --> Controller 가기 전 가로챈 후 로직을 적용 filter, Interceptor 차이점 적용시점이 다름. filter 의 경우 request --> DispatchServlet 으로 넘어가기 전 걸림. Interceptor 의 경우 DispatchServlet --> Controller 로 넘어가기 전 걸림. 접근할 수 있는 아규먼트 다름. filter 의 경우 HttpRequest 접근 가능 Interceptor 의 경우 내부 빈 접근 가능. 스펙이 다름. .. 2020. 12. 23.
jpa 외래키 연관관계 맵핑 주인은 외래키가 존재하는 곳으로 설정 jpa 외래키 연관관계 맵핑 주인은 외래키가 존재하는 곳으로 설정 외래키 연관관계 맵핑 주인은 외래키가 있는 곳으로 설정 회원과 주문을 기준으로 1명의 회원은 여러 번의 주문을 할 수 있음. 일대다 관계임. 주문 테이블에 FK 가 있을것이고, 이 것을 연관관계 맵핑 주인으로 설정하는 것이 기본 원칙 만약 반대로 맵핑 주인을 설정한다면 주문 테이블에 위해 회원 테이블이 변경될 수 있기에 여러 번 호출. 이는 성능 문제를 발생시킴. 주문 테이블에 맵핑 주인이 있으면 1번만 호출하면 전부 변경할 수 있는데. 주인인 쪽은 읽기,쓰기가 가능하고. 주인이 아닌 쪽은 읽기만 가능. 회원은 읽기만. 주문은 읽기, 쓰기 가 소스로 설명하면 다음과 같음. // 회원 테이블, 주문 테이블이 있음. // 둘은 일대다 관계이고.. 2020. 12. 22.
spring boot + jpa 환경에서 h2 접속할려는데 file 위치를 못찾는 현상 상황 spring boot + jpa 환경에서 h2 접속할려는데 file 위치를 못찾는 현상 Database "xxx/test" not found, and IFEXISTS=true, so we cant auto-create it 해결방안 spring boot + jpa 환경에서 h2 에 접속하기 전 아래와 같이 tcp 로 붙을려면 미리 데이터베이스를 만들어놔야 함. jdbc:h2:tcp://localhost/~/test 그렇기에 h2 console 환경에서 위 url 을 한 번 접속해주면 데이터베이스 생성되고, 그 이후에는 접속이 잘됨. Reference http://www.h2database.com/html/tutorial.html#creating_new_databases 2020. 12. 21.