본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


스프링10

Spring 컴포넌트 스캔(Spring component scan, RootContext와 ServletContext)에 대한 간단 정리 위 사진으로 모든것이 설명이 가능합니다. 스프링이나 전자정부에서 자신이 만든 프로젝트의 파일들의 위치를 알려줄 때 테그를 활용 합니다. 만약 서블릿 설정 파일 1곳에서만 모든 내용을 기록하고 작업한다면 위 내용은 굳이 모르고 지나쳐도 상관은 없습니다. 그런데 프로젝트 규모가 커지고 context파일이 많아질 때 컴포넌트 스캔에서의 실수를 종종 하고는 합니다. 아래 사진은 전자정부 프레임워크에서 사용되는 샘플 web.xml 파일입니다. 서블릿 파일은 dispatcher-servlet으로 되어있습니다. 그리고 egovframework 디렉토리에 spring 디렉토리에 context로 시작하는 xml 파일이 context param으로 존재 합니다. context로 시작하는 파일은 일반적으로 aop설정, ex.. 2020. 7. 28.
스프링 객체 초기화, 스프링 객체 늦은 초기화 (Spring bean init, Spring bean lazy init) 빈 객체를 초기화 하는 방법 1. 에노테이션을 활용한 방법 import javax.annotation.PreDestroy; import javax.annotation.PostConstruct; @Controller class TestController { //기타 내용들.. @PreDestroy public void destroy() throws Exception { System.out.println("destroy!!"); } @PostConstruct public void init() throws Exception { System.out.println("init!!"); } } 2. 인터페이스를 상속받는 방법 import org.springframework.beans.factory.Disposable.. 2019. 7. 26.
Spring프레임워크 415, 400 오류 (Requestbody, RequestParam) HttpClient를 활용해서 다른 서버에 요청을 걸어 데이터를 가져오는 기능을 구현중에 있었다. 해당 서버에서도 SpringFramework를 활용한 작업이라 금방 할 것 같았는데.. Request매핑에서 간혹 오류가 발생 하였다. @RequestMapping(value = "/good.do") @ResponseBody public synchronized String good(@RequestParam HashMap param){ return "SUCC"; } @RequestMapping(value = "/error.do") @ResponseBody public synchronized String error(@RequestBody HashMap param){ return "SUCC"; } 위 코드를 보면.. 2019. 7. 9.
Spring에서 (전자정부) Mail 발송하기 smtp 서버가 따로 존재한다는 가정이 필요하다. smtp 서버는 여기서는 네이버 smtp를 사용하였다. 네이버에서 smtp를 활용하는 방법은 어렵지 않다. (구글이나 다음도 거의 비슷하다) 위 세팅이 끝나면 맨 하단의 SMTP 정보를 기록하자. 스프링(전자정부)에서는 간단하게 구현하였다. Bean 객체로 등록해서 사용하도록 하였다. 여기서는 maven을 활용한 라이브러리 추가를 하였다. 가장 먼저 pom.xml 을 열어 mail 라이브러리를 추가한다. 혹시 버전에러가 생기면 자신의 프로젝트 버전에 맞추어서 버전을 바꾸도록 한다. javax.mail mail 1.4.7 기능구현은 어렵지 않다. 구글링을 해 보면 정말 잘 나와있다. setter와 getter 메소드를 추가해서 bean 객체로 등록 할 준비.. 2019. 5. 14.
스프링(전자정부), 몽고DB와의 연동 (몽고DB 터널링, Mongodb Ternering, Mongodb ssh) 스프링에서 몽고db를 연동하는 방법을 찾아보면, 스프링 boot랑 관련된 내용은 꽤 많이 나오는데..스프링과 관련된 내용은 그다지 많지 않는 것 같다. 몽고db와의 연동은 하이버네이트를 사용해 보았거나 JPA방식의 연동을 해 본 경험이 있으면 그다지 어렵지가 않다. 아무튼, 몽고db와의 연동을 위해서는 라이브러리를 받아야 한다. pom.xml에 라이브러리를 등록하여 주자. 라이브러리 버전때문에 문제가 발생 할 수 있으니 의존성관련 문제가 발생하면 구글링을 통해 맞는 버전을 찾자. org.mongodb mongo-java-driver 3.2.2 org.springframework.data spring-data-mongodb 1.9.1.RELEASE 위 2개의 라이브러리가 추가 한 뒤에 설정파일(xml)을 .. 2019. 5. 9.
Software caused connection abort: socket write error 해당 오류는 소캣이 끊어진 상태에서 끊어진 소캣을 다시 활용해서 응답(Response)하는 경우 발생하는 에러이다. ​ 일반적인 상황에서는 잘 발생되지 않으며, 사용자가 직접 구현한 소켓서버에서의 close현상 이라던지, 데이터베이스와의 연결에서의 문제로 인한 것 이라던지, 서버의 timeout이 짧아 발생하던지..3가지 정도가 구글링을 하니 찾을 수 있는 내용 이였다. ​ 하지만 이번에 만난 경우는 3가지 중 해당되는 것은 없었 던 것 같다. ​ 1. 상황 서블릿에서 제공되는 Filter를 상속받아 주고받는 데이터에 따른 필터링을 했었다. 주고받는 데이터를 확인하여 유효하지 않는 요청값은 데이터베이스나 컨트롤러에 아에 접근 못하게 하는 역할을 하는 기능이였었다. 처음에는 아무런 오류가 나지 않았는데, .. 2019. 4. 29.