Java/Spring
-
Transaction / AOPJava/Spring 2018. 8. 27. 17:13
Transaction - 데이터 처리정상적으로 데이터가 처리 되면 Commit - 유지 Error가 발생되면 Rollback - 취소 AOP - 공통코드를 동작시키위한 기술Aspect Oriented Programming - 관점 지향 프로그래밍Spring AOP로 Transaction을 처리한다.weaving - Compile된 여러개의 .class 파일을 하나의 클래스로 묶어서 처리하는 기술마치 하나의 코드처럼 움직인다. Service Logic / Business Logic 실행 시 Exception이 발생할 때, DataBase에 변경 사항 RollBack이 필요하다. AOP는 Point-cut과 Advisor로 구성되어 동작한다.Point-cut : 특정 패키지, 클래스, 메소드 지정Adviso..
-
LoggingJava/Spring 2018. 8. 27. 16:53
logging은 과정을 기록하는 것이다.DB만으로는 추측이 어렵기 때문에 로깅을 이용한다.ex) 조회수 Spring Framework는 Commons-Logging을 사용한다. - Spring 4이하 버전까지Spring5부터는 spring-jcl을 사용한다. Commons-logging은 Cpu와 Ram, Disk ( System Resource )를 많이 잡아 먹기때문에 Log4J 또는 Logback으로 변경이 필요하다.Log4j 또는 Logback 라이브러리가 필요하다. Log4j와 logback은 commons-logging을 대신 사용하기 위해 필요하다. 없으면 안찍히거나 2번 찍히게 된다. pom.xml에 Dependency를 추가한다. ch.qos.logback logback-classic 1..
-
Static ResourcesJava/Spring 2018. 8. 24. 16:42
css, js, image 등의 자원은 파일이 존재하는 url 그 자체로 사용된다.이런 요청은 MVC의 DispatcherServlet으로 판단해 Controller에서 RequestMapping Annotation을 검색하게 된다.원하는 js파일을 얻을 수 없고, 404 에러만 계속 발생하게 된다. 그래서 css, js, img 같은 정적 자원들은 따로 url을 주어야 하는데이런 기능을 mvc:resources가 제공해준다. 아래와 같이 DispatcherServlet에 등록한다. applicationContext.xml에서 등록한다. 여러개 동시에 등록가능하다. 위 설정은 resources라는 경로로 정적 파일들을 제공하겠다는 의미의 설정이다.해당 path url로 들어가면 알맞는 파일을 가져올 수 ..
-
InterceptorJava/Spring 2018. 8. 24. 16:29
/board 이하의 모든 URL들에 대해 인증된 회원만 접근하고자할때, Filter 기능을 사용해서 Session 인증 처리를 할수 있지만, Spring Bean 주입 받을 필요가 있을 경우 Interceptor를 이용한다. Adapter에서 Controller로 보낼때, -> preHandleController에서 Adapter로 받을 때 -> PostHandleJSP가 Return되려 할때 -> AfterComplet 주로 Interceptor는 preHandle에서 쓰인다. -> Session검증, 정보 검증 Interceptor는 bool 로 되있다. return 값이 true면 진행하고 false면 진행하지 않는다. 일종의 검문소와 같다고 볼 수 있다. SessionInterceptor라는 Ha..
-
bean config 설정 분리Java/Spring 2018. 8. 24. 16:05
applicationContext에 Data가 늘어날수록 파일이 무거워지기 때문에 Bean Config 설정을 분리한다. Bean들을 한 곳에 정의하고 Listener를 통해 모두 Loading한다. web.xml에서 ContextLoaderListener를 추가한다. contextConfigLocation /WEB-INF/spring/*Context.xml org.springframework.web.context.ContextLoaderListener /WEB-INF/spring/*Context.xml 이미 Load된 Bean Container에 적재 된 Bean은 제외한다. applicationContext.xml에서는 URL관련 설정을 작성한다. ( HandlerMapping, HandlerAdap..
-
Application 예외 처리Java/Spring 2018. 8. 24. 15:53
웹 페이지를 이용하다보면 Page Error 404, 505등 페이지 에러가 나타난다. 해당 에러 페이지에는 민감한 정보가 그대로 노출되기때문에 예외처리를 통해 페이지를 구성해야 한다. view 폴더 아래 errors 폴더를 만들고 jsp파일을 만든다. DOCTYPE html>404 Not Found 페이지를 찾을 수 없습니다. 홈으로 돌아가기 500.jsp DOCTYPE html>500 Not Found 일시적 오류로 인해 페이지를 표시할 수 없습니다. 잠시 후 다시 시도해 주세요. 이 페이지가 계속 보인다면, 사이트 관리자에게 문의해 주세요. 고객센터 바로가기 홈으로 돌아가기 상황별 예외 처리를 위해 web.xml에서 throwExceptionIfNoHandlerFound param을 추가한다. sp..
-
File - Upload / DownloadJava/Spring 2018. 8. 23. 17:53
pom.xml에서 파일 업로드에 필요한 Dependency를 추가한다. commons-fileupload commons-fileupload 1.3.3 applicationContext.xml에서 파일 업로드 설정을 한다. 100MB가 최대 용량이다. * Form 객체를 Command Object라고 부른다. 파일업로드를 사용하기 위해 write.jsp의 form 태그에 enctype="multipart/form-data"를 입력한다. Spring Framework에서는 File을 MultipartFile 객체로 전달 받는다. * Servlet / Jsp 에서는 Upload가 불가능하다. -> Java File Transfer가 없기 때문이다. Commons-fileupload는 file을 byte단위로 ..
-
SessionJava/Spring 2018. 8. 23. 17:41
Session의 단점 1. 사용자가 많으면 메모리가 많이 필요하다.2. 보안 취약 -> Session ID를 계속 바꿔야한다. -> Session 하이재킹에 위협이 있다.3. 분리되있는 서버에서는 Session이 공유가 안된다. Server에 VO정보를 전달한다. -> Session ID 브라우저 Cookie에 Session ID를 저장하고, 서버가 닫히면 삭제 된다. 재요청시 이전에 사용했던 SessionID를 브라우저 쿠키에서 가져온다. Spring Controller는 필요한 객체들을 파라미터를 통해 직접 제공받을 수 있다. Session 처리를 위해 HttpSession 객체가 필요할 경우 파라미터를 통해 주입 받는다. DispatcherServlet이 필요한 Argument 자리에 Paramet..