Spring Boot & JPA 실무 과정 자료]Dependency 추가

 

 

 

 

Spring Boot & JPA 실무 과정 자료] Dependency 추가

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

Dependency 추가

 

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

Spring Boot & JPA 실무 과정 자료]Pom.xml 수정

 

 

 

 

 

Spring Boot & JPA 실무 과정 자료] Pom.xml 수정

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

Pom.xml 수정

 

■ a. 필요없는 element 삭제
  - Packaging, name, url (패키징은 기본 jar로)


  - JUnit 삭제(추후 테스팅이 필요시 추가가능)

 

■ b. 추가
  - Parent 엘리먼트
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.1.RELEASE</version>
</parent>

Spring Boot & JPA 실무 과정 자료]프로젝트 작성

 

 

 

 

Spring Boot & JPA 실무 과정 자료] 프로젝트 작성

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

프로젝트 작성

 

■ 명령 프롬프트에서 사용할 워크 스페이스 로 이동

Ex)cd d:\Dev\workspace
D:\Dev\workspace2>mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=org.example -DartifactId=skeleton-web-services -DinteractiveMode=false

 

■ maven-archetype-quickstart : 프로젝트타입(간단한? Java Project 작성)

 

■ org.example: 기본 패키지로 사용할 이름

 

■ skeleton-web-services: 프로젝트명

 

■ -DinteractiveMode=false : 인터렉티브 모드를 사용하지 않음(y/n등을 물어보지 않음)

Spring Boot & JPA 실무 과정 자료]STS설치시 주의사항

 

 

 

 

 

Spring Boot & JPA 실무 과정 자료]STS설치시 주의사항

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

STS설치시 주의사항

 

■ 알집(Alzip) 설치
- Window기본 압축 프로그램이 너무 느려서 알집등으로 압축 해제

 

 

■ 압축파일 이름 짧게 변경
- spring-tool-suite-3.8.4.RELEASE-e4.6.3-win32-x86_64.zip 등으로 파일이름이 너무 길어서 이대로 압축해제시 window 자체오류 발생함

- Sts.zip 등으로 짧게 변경하고 압축해제

Spring Boot & JPA 실무 과정 자료]Spring Boot 설치와 사용(Bootstrapping)

 

 

 

 

 

Spring Boot & JPA 실무 과정 자료] Spring Boot 설치와 사용(Bootstrapping)

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

Spring Boot 설치와 사용(Bootstrapping)

 

설치
JDK 8 설치
http://iclass.tistory.com/entry/1-Java-SE-Development-Kit-8-설치-v180

 


Maven 설http://freestrokes.tistory.com/entry/MAVEN-MAVEN-설치-및-Eclipse-연동하기

 


STS 설치 http://jwgye.tistory.com/12

 

 

 

STS설치시 주의사항

■ 알집(Alzip) 설치
- Window기본 압축 프로그램이 너무 느려서 알집등으로 압축 해제

 

■압축파일 이름 짧게 변경
- spring-tool-suite-3.8.4.RELEASE-e4.6.3-win32-x86_64.zip 등으로 파일이름이 너무 길어서 이대로 압축해제시 window 자체오류 발생함

- Sts.zip 등으로 짧게 변경하고 압축해제

Spring Boot & JPA 실무 과정 자료]Dao작성

 

 

 

Spring Boot & JPA 실무 과정 자료] Dao작성

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

Dao작성

 

■ EntityManager 사용

 

■ JPQL 사용

 

@Repository
public class TodoRepositoryImpl2 extends AbstractDao<Integer, Todo> implements TodoRepsitory {

@Override
public Todo findOne(int todoId) {
return getByKey(todoId);
}

@Override
public Collection<Todo> findAll() {
List<Todo> todos =
getEntityManager()
.createQuery("SELECT t FROM Todo t")
.getResultList();
return todos;
}

@Override
public void create(Todo todo) {
persist(todo);
}

@Override
public boolean update(Todo todo) {
upd(todo);
return true;
}

@Override
public void delete(Todo todo) {
del(todo);
}

@Override
public long countByFinished(boolean finished) {
long cnt = (Long)getEntityManager().
createNativeQuery("SELECT count(*) FROM Todo where finished = :finished")
.setParameter("finished", finished)
.getSingleResult();
return cnt;
}

}

Spring Boot & JPA 실무 과정 자료]AbstractDao 작성

 

 

 

 

 

Spring Boot & JPA 실무 과정 자료] AbstractDao 작성

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

AbstractDao 작성

 

■ EntityManager 작성

 

■ @PersistenceContext 로 의존성 주입

 

public class AbstractDao<PK extends Serializable, T> {
private final Class<T> persitentClass;

@SuppressWarnings("unchecked")
public AbstractDao() {
//제네릭스로 부모클래스가 운용하는 파라메터의 클래스 취득
this.persitentClass = (Class<T>)((ParameterizedType)this.getClass().
getGenericSuperclass()).getActualTypeArguments()[1];
}

@PersistenceContext
EntityManager entityManger;

protected EntityManager getEntityManager() {
return this.entityManger;
}

protected T getByKey(PK key) {
return (T)entityManger.find(persitentClass, key);
}
protected void persist(T entity) {
entityManger.persist(entity);
}

protected void upd(T entity) {
entityManger.merge(entity);
}

protected void del(T entity) {
entityManger.remove(entity);
}
}

Spring Boot & JPA 실무 과정 자료]tx:annotation-driven 설정

 

 

 

 

 

Spring Boot & JPA 실무 과정 자료] tx:annotation-driven 설정

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


tx:annotation-driven 설정

 

Servlet-context.xml에 tx:annotation-driven 설정

<tx:annotation-driven transaction-manager="transactionManager"/>

 

+ Recent posts