반응형

Spring-JSP 20

[Spring-JSP] Transaction 전파 속성

우선 트랜젝션이 뭔지 먼저 간략하게 확인하고 가자. 1. 트랜잭션(Transaction)이란? 트랜잭션은 작업의 완전성 을 보장해주는 것. 작업을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우, 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능이다. 하지만 트랜젝션에서 세밀하게 보면 몇가지 전파옵션이 있다는것을 알아야한다. 스프링은 트랜잭션의 경계를 설정할 때 네 가지 트랜잭션 속성을 지정할 수 있다. 추가적으로 선언적 트랜잭션에서는 롤백/커밋 기준을 변경하기 위해 두 가지 추가 속성을 지정할 수 있다. 2. SpringFramework의 트랜잭션 전파 속성 2개 이상의 트랜잭션이 작동할 때, 기존의 트랜잭션에 적용되는 방법을 설정한다. 1). REQUIRED DEFAU..

[Spring-JSP] 어플리케이션 백그라운드 데몬쓰레드 + ServletContextListener

오늘은 서버 구동시 호출되는 메서드를 먼저 알아보고, 해당 기능을 통한 서버 데몬을 기록해 두려고한다. 필자는 Redis를 사용하여 서버에서 Redis를 Sub하고있는 서버 데몬을 만들었다. 이전에는 어플리케이션 뒷단에서 작동하는 Daemon Thread로 유용하게 사용할 수 있을 아이~! 다음은 필요한 정보들이다. 1). Redis properties를 가져오기 위하여 @PropertySoure를 사용한다. 2). ServletContextListener + @WebListener @WebListener 어노테이션을 사용하여 Tomcat에 Listener임을 알려주는 어노테이션인데, 해당 어노테이션을 통해 Tomcat에게 이거 리스너로 쓸거야! 라는것을 알려준 뒤, ServletContextListen..

[Spring-JSP] @WebListener 와 ServletContextListener

@WebListener Annotation은 Servlet-api 라이브러리를 가져와서 사용하는 어노테이션으로, 어노테이션을 달면 톰캣에게 이클래스는 Listener이다 라고 알려준다. 톰캣에게 나는 리스너다 라고 알려준뒤 ServletContextListener interface를 받아, contextInitialized와 contextDestroyed를 오버라이딩하여 메서드를 사용할 수 있다. #여기서 리스너란? 특정 이벤트(특정한 사건)가 발생하기를 '귀 기울여' 기다리다가 실행되는 컴포넌트(메서드나 함수)를 뜻한다. @WebListener public class ContextLoaderListener implements ServletContextListener { @Override public v..

[Spring-JSP] 초기화 메서드 Spring Bean 생명주기

오늘은 Spring에서 서버 기동후 모든 어플리케이션을 구동하기위한 세팅이 끝난 후 실행되야 되는 메소드를 구현하는 방법을 작성해두려고 한다. 필자는 Server 재기동시 DI작업을 마치고 난뒤 Redis에 이런저런 데이터를 캐싱해 놓을때 사용했다.(관리자정보, IoT정보 , 메뉴 등) Spring 생명주기와 관련된 부분이라, 전체적으로 기재해 놓으려고 한다.! 초기화 메서드 DI 작업 까지 마친 다음 실행되는 메서드로, DI를 통해 빈이 주입된 후에 초기화 할 작업이 있을때 초기화를 진행할 수 있다. 즉 초기화 메소드(initialization method)는 빈 오브젝트가 생성되고 DI 작업까지 마친 다음에 실행되는 메소드를 말한다. InitializingBean Spring에서 제공하는 인터페이스로..

[Spring-JSP] Json 을 HashMap으로 변환하는 법

오늘은 간단하게 정리... Json to HashMap 필요 Libraray : Jackson 방법 : ObjectMapper mapper = new ObjectMapper()를 사용하여, type을 변환. ArrayList resultList = new ArrayList(); JsonArray testArray = test.get("test").getAsJsonArray(); for (Object o : iotArray) { Object testObj = (Object)o; HashMap paramMap = new HashMap(); ObjectMapper mapper = new ObjectMapper(); try{ paramMap = mapper.readValue(testObj.toString(), ..

[Spring-JSP] ModelMapper란? 사용법

Java를 쓰면서 여러가지 상황에서 많이 쓸 수 있는 라이브러리인것 같아 정리 해 놓으려고 한다. ModelMapper란? 어떤 Object에 있는 필드값들을 자동으로 원하는 Object로 Mapping시켜준다. 쉽게 말해, 보통 우리는 getter()/setter()를 통해 원하는 input과 output이 다를때 output Object에 input필드값들중 원하는 필드들을 하나씩 넣어주는 과정을 한번씩은 꼭 겪었을것이다. 하지만 20개중 17개만 옮겨서 깔끔하게 사용하고 싶을때, 우리는 일일이 getter/setter를 작성 해야한다. 이러한 작업들이 사실상 굉장히 귀찮고, 시간도 소요되며, 필드값을 놓칠 가능성도 있다. 이런 단점들을 한방에 사라지게 하는 라이브러리가 ModelMapper이다.!!..

[Spring-JSP] 엄청쉬운 Apache Poi 데이터 Excel 다운로드 기능구현

오늘은 저장된 데이터를 엑셀 다운로드 하는 기능을 공통화시켜서 사용할 수 있도록 만들어 놓은것을 정리 해놓으려고 한다. 1). JSP 공통되게 사용할 수 있도록 정리한것이기 때문에 JSP단에서 부터 시작된다. 각각 JSP에서 사용할 메소드명과 컬럼명을 준비해놓는게 키포인트 번호 회사명 이름 주소 번호 나이 2). Js 설정한 정보들을 가져온다. 여기서 엑셀의 헤더(컬럼)을 잘 정리해주자~ 추가로 엑셀 다운로드에 필요한 form을 만들어서 붙여주고 submit을 날렸다. function excelDownLoad(){ $("#_excelForm").remove(); var mapperName = $("#excelHeaderInfo").attr("mapperName"); var searchFormId = $(..

[Java-Basic] Method.Invoke()란? 가벼운 사용방법(메서드실행)

메서드명만 받아서 정의되어있는 메서드중 내가 원하는 메서드만 실행시키고 싶을때 사용한다. (보통 그냥 메서드를 실행시키면 되지만, Client단에서 메서드를 각기 다른것으로 호출하는데, 같은 Service를 탈때 사용했다.) //내가 정의해둔 Dao에서 메서드들을 가져온다. Method[] methodList = testDao.getClass().getMethods(); //가져온 메서드중에서 메서드명이 같은것을 실행시킨다. for(Method m : methodList){ if(m.getName().equals(전달받은이름)){ 결과 = m.invoke(testDao,전달파라미터); } } 자 여기서 우리는 해당 Service를 공통으로 사용하는데, 클라이언트는 각기 다른상황이라고 생각해보자. 원래 였..

[Spring-JSP] Custom Annotation을 이용한 AOP 만들기

Spring하면 빼놓을수 없는것이 AOP이다. CustomAnnotation을 이용하여 권한을 체크하는 방법을 기록해두려고 한다. 1). AuthorizationAspect를 정의하여 읽어올수 있게 Bean으로 등록한다. root-context.xml => 다른 AOP도 아래와 같이 추가해주면 된다. 2). Custom Annotation을 만든다. annotations.CheckAuth.java @Retention(RetentionPolicy.RUNTIME) //Runtime동안 적용? @Target({ElementType.METHOD})//Method에 적용 public @interface CheckAuth{ int[] checkAuth(); //숫자 배열로 어노테이션 값을 전달받을 수 있게 설정. ..

[Spring-JSP] Thumbnailator-이미지/jcodec-비디오 업로드시 썸네일 만들고 저장하기

이미지 업로드하고, 썸네일 만들어서 저장하려고 한다. 일단 다른 로직 제외하고 썸네일쪽만 보려고 한다. 1). pom.xml Dependency를 추가해준다. 이미지 썸네일 만들때는 Thumbnailator를 사용 비디오 썸네일 만들때는 imgscalr과 jcodec을 사용 파일업로드는 commons-io 를 사용 commons-io commons-io 2.4 commons-fileupload commons-fileupload 1.3 //이미지 썸네일 만들때 사용Library net.coobird thumbnailator 0.4.11 //비디오 썸네일 만들때 사용Library org.imgscalr imgscalr-lib 4.2 org.jcodec jcodec 0.1.9 org.jcodec jcodec-..

반응형