본문 바로가기

Spring

[Spring] Spring JPA Data + Hibernate 설정 회사에서 팀에서 스터디겸 프로젝트로 하나 진행하고 있는 것이 있다. 새로운것들을 마구마구 적용해서 공부도 하면서 비지니스에 뭔가 도움이 될만한 재미있는 것을 만들자는 것이 목적인데... 현기형님께서 워낙 이런 기술습득이나 적용에 월등하게 빠르셔서.. 그냥 설정해주신 내용을 가지고 따라 쓰기도 바쁜 상태였었다. 빌리님께서 셋팅하신 스프링 배치도 마찬가지고... git빼고는 해본게 아무것도 없는 설정이라 더욱 곤욕...ㅋ 그래서, 그래도 프로젝트 초반에 한번 직접 셋팅이라도 해보지 않으면 나중에 더 힘들어질듯하여.. 예전에 봤던 책 내용들을 다시 되새기면서(구글링하면서...) 셋팅을 해보았다. 막셋팅이라 최적화와는 거리가 멀겠으나 일단 테스트케이스까지 만들어보는 것 성공... 그 내용을 이제 맥북프로를 받으.. 더보기
[Spring] difference between CrudRepository and JpaRepository http://stackoverflow.com/questions/14014086/what-is-difference-between-crudrepository-and-jparepository-interfaces-in-spring 더보기
[Spring] TransactionManager 사용 토비의 스프링 3.0에서 .. 더보기
[spring] System properties 읽기 jvm 실행 시 -D 옵션으로 주는 값에 대해서 아래와 같이 읽을 수 있다. @Value("#{systemProperties['key'] == null ? 'real' : systemProperties['key']}")private String mode = null; el expression을 그대로 사용 가능한 것 같다.위와 같은 형태로 작성하면 default 값을 지정한것과 같은 효과를 줄 수 있음. 더보기
[Spring] Scheduled 로그분석기를 개편하면서 (회사내 개인 프로젝트)기존에 cron으로 돌리던 job을 quartz + spring으로 바꾸려고 이것저것 찾아보다보니spring 3.1 부터는 어노테이션으로 이게 가능해진것을 알았다. 간단히 테스트해본 내용을 올려봅니다. 우선, applicationContext.xml에 아래와 같은 설정이 필요합니다. task에 대한 namespace 선언이 필요하며 설정이 필요합니다.실제 스케쥴에 의해서 실행될 job 클래스는 아래와 같이 구현합니다. @Service나 @Component나 spring에서 어노테이션으로 스캔하여 bean으로 등록될 수 있으면 상관은 없는듯하며@Scheduled 어노테이션으로 cron 형태로 스케쥴을 정할 수 있습니다.다만 맨 앞이 초입니다. 0 34 18 *.. 더보기
HttpInvoker로 변경. -.- 관리가 편할 것이라는 풍주대리님 얘기를 듣고.. 작업해 놓은 rmi를 httpInvoker로 변경. 만들어 놓은 인터페이스는 그대로 사용하고 설정만 수정하였다.. spring에서 제공되는 클래스를 사용하고... 똑같이 클라이언트 인터셉터를 사용한다. 따로 포트 관리 할 것도 없고 확실히 편하다는 느낌이 든다. 이걸로 결정~!! 더보기
BeanFactory 인터페이스. 스프링에서는 객체를 컨테이너에서 관리 하는데 이 컨테이너와 관련된 인터페이스가 BeanFactory 인터페이스이다. BeanFactory 더보기
[spring] Pojo빈의 생명주기 관리 하기 빈의 생명주기에서 스프링은 초기화와 소멸과정을 지원한다. 각각 2가지의 방법이 있는데 하나는 스프링에서 제공되는 인터페이스를 구현하는 방법과 하나는 메서드를 만든 후 그 메서드를 설정 파일에 명시해 주는 것이다. 우선 초기화 과정 지원을 보자. 일단, InitializingBean 인터페이스를 implements 하여 public void afterPropertiesSet() 메서드를 구현하여 주는 것이다. 또 하나는 클래스에 임의의 메서드를 만들고나서 예를 들면 public void init() {..} 설정 xml에 이렇게 init-method 속성으로 추가해주면 된다. 소멸과정을 지원하는 메서드로는 일단, DisposableBean 인터페이스를 implements하여 destroy() 메서드를 구현.. 더보기
[spirng] 웹 요청 처리 스프링을 다시 공부하고 있다.. 스프링에서 웹 요청을 처리하기 위해서는 일단 web.xml에 아래와 같은 설정을 해줘야 한다. dispatcher org.springframework.web.servlet.DispatcherServlet 1 dispatcher *.htm 그리고, 스프링 설정 xml인 dispatcher-servlet.xml에는 아래와 같은 설정을 해줘야 한다. 그렇게 되면 사용자가 http://xxxxxxx/greeting/hello.htm 을 요청하게 되면 바로 handlerMapping에 의해서 /greeting/hello.htm의 이름을 가진 컨트롤러를 사용하게 된다. 자, 여기서 만약 이부분을 삭제한다면? 어떻게될까.. 답은 정상적으로 작동한다이다. log4j 로거 레벨을 debu.. 더보기
[spring] spring 기초 빈의 설정 정보 관리 파일이 xml이라고 보면 xml에서는 이런식으로 설정이 되어 있다. 실제 소스에서는 public class UserServiceImpl implements USerService { private UserDAO userDAO; public void setUserDao(UserDao newUSerDAO) { this.userDAO = newUSERDAO; } int result = userDAO.insert(user); ... 이처럼 UserDAO에 대한 정의나 생성이 아무것도 없이 사용 할 수 있는데 xml에 설정되어 있기 때문이다. bean태그 아래 property 태그의 이름이 userDAO라면 위 예제 클래스의 setUserDAO를 통하여 자동으로 xml에서 설정되어 있는 MyS.. 더보기