언제나 그렇지만 maven 의존부터 넣어줍시다.


참고로 본인의 스프링 버전은 4.1.6입니다.



exclusions 부분을 보면 의존성 주입 시 제외시키는 부분이 있는데, 기존의 것이 있으니까 그런 것입니다. 예를 들면 xml-apis 경우 java se 7에 있기 때문에 자바 7버전을 쓰고 있다면 굳이 넣을 필요가 없단 말씀입니다.


자신의 pom.xml을 보면서 넣을 것 넣어주고 추가할 것 추가하면 되겠습니다 그런데 이 코드를 그냥 복붙하면 별 문제는 없을 것 입니다.


이번에는 하이버네이트 설정을 추가합시다. 제 프로젝트의 주 설정파일은 xml로 되어 있는데, 이번에는 하이버네이트 설정을 자바로 따로 하고, 이를 기존의 xml 파일에 추가하기로 했습니다.



원래 persistence.xml 파일을 별도로 써야 하는데, 저렇게 하면 xml 파일이 따로 필요 없습니다.


@Autowired

BasicDataSource awsDataSource;

이 부분에서 보는 바와 같이 본인이 쓰는 datasource를 적절하게 불러와주고 하단 설정에서 맞게 바꿔주면 됩니다.


그리고 본인은 Mysql 5버전을 쓰고 있기 때문에 adapter.setDatabasePlatform("org.hibernate.dialect.MySQL5InnoDBDialect"); 이렇게 설정되있으므로 각자 디비에 맞춰 바꿔주면 되겠습니다.


그리고 factory.setPackagesToScan("com.vp.vo"); 이 부분은 entity 클래스, 그러니까 Vo가 모여 있는 package 입니다. 각자 맞춰서 바꿔줌 될것입니다.


properties.put("javax.persistence.schema-generation.database.action","none"); 이 부분은 하이버네이트가 테이블 생성을 못하게 막는 것입니다.


이번에는 어플리케이션의 주 설정파일에 설정을 추가합시다.


다음 부분이 본인의 주 설정파일에 추가된 부분입니다.





<context:annotation-config></context:annotation-config> 이것은 @Configuration을 통한 설정 등록을 가능하게 해주는 것이고, 그 다음 설정파일을 빈 등록 합니다.


jpa:repositories의 base-package는 레포지토리 인터페이스가 있는 패키지로, transaction-manager-ref는 각자 설정에 맞게, entity-manager-factory-ref는 위에서 추가해뒀던 빈을 넣어줌 되겠습니다.


다음은 간단한 레포지토리 샘플입니다.



보는 바와 같이 CrudRepository를 구현하고 있기 때문에 간단한 CRUD는 추가 코드가 필요 없습니다.


다음은 엔티티 예제입니다.

 


하이버네이트와 별개지만, 롬복은 꼭 쓰세요. 너무 편합니다.


각 어노테이션이 뭘 의미하는 지는 레퍼런스를 참조하거나 각자 보는 찾아보시기를 바랍니다.


이쯤 되면 기본은 됐다. 이제 서비스 레이어(@Service)에 코드를 조금 넣고 테스트를 해봅시다.



위처럼 서비스 레이어에 테스트를 위한 짧은 코드를 추가했다. 간단하게 테이블에서 엔티티에 ID로 지정된 컬럼에 따라 데이터를 불러오는 것입니다.


아래는 Junit 테스트를 위한 간단한 코드입니다.

 


Junit을 다루는 것은 이 아티클의 주제에서 벗어나는 것이니 이만 줄이겠습니다.


다음에는 1:N 매핑을 실습해보겠습니다.




Posted by 타다키치
,