반응형

Spring

    Aop 설명과 설정방법

    AOP 설명 AOP는 횡단 관점으로서 어느 메서드가 실행되면 실행되는 과정 특정 메서드의 예외가 실행되면 실행되야 하는 것, return이 호출되면 실행되야하는 것 등을 지정을 해놓을 수 있다. 자바의 프록시 기능과 유사하다. Aspect는 이런 AOP를 수행할 객체를 이야기하고, Pointcut은 어느 시점에 동작을 하게 할것인지 예를 들어 어느 이름을 가진 메서드가 실행될 때 실행해라. 어는 패키지 안에 내용이 들어가 있는 클래스가 호출될 때 실행해라 등 지정할 수 있다. Around, Before, After 애노테이션을 이용하여 특정 시점에 지정된 Pointcut을 실행 시킬 수 있다. 설정방법 123456789101112131415161718192021222324252627282930313233..

    스프링 실행 시 실행 되는 부분

    스프링으로 만든 어플리케이션실행과 함께 스케줄등을 실행 시켜야 하거나 initialDB등등 초기화 하는 메서드를 실행시켜야 하는 경우가 있기 때문에 실행되는 메소드에 대해서 알아볼 필요가 있어서 이 구동될 때 실행되는 메소드에 대해 정리하였다. 1. PostConstruct, PreDestory 그 중 bean이 생성될 때 실행되는 init-method 또는 destroy-method를 하는 @PostConstruct와 @PreDestroy가 있다. @PostConstruct는 InitializingBean 콜백 인터페이스로써 afterPorpertiesSet() 으로써 정의된다. @PreDestory는 DisposableBean에 대해서 destroy()를 호출한다. 이런 초기화 메서드와 소멸 메서드의..

    Spring 프로젝트에서 src/main/resource 경로에 파일접근 방법

    /src/main/resource에 존재하는 파일에 접근하고 싶은 경우에 다음과 같이 접근한다. 1234567// 파일 위치src/main/resource/file/test.text // 소스getClass().getResource("/file/test.txt");=> 만약 static block에서 사용하고자 하는 경우에는 getClass가 동작하지 않기 때문에getClass 대신 클래스명.class.getClassLoader을 사용한다.cs

    외부 properties 파일을 이용해서 스프링 빈을 생성하는 방법

    1. XML에서 프로퍼티 설정 12345678910111213141516// xml // properties 파일db.driver=com.mysql.jdbc.Driverdb.jdbcUrl=jdbc:mysql://localhost/spring4fs?characterEncoding=utf8db.user=testdb.password=testColored by Color Scriptercs 태그는 location 속성으로 지정한 프로퍼티 파일로부터 정보를 읽어와 빈 설정에 입력한 플레이스 홀더의 값을 프로퍼티 파일에 존재하는 값으로 변경한다. # place holder는 ${로 시작하고 }로 끝나는 값. 주의 할 점은 서로 다른 xml에서 서로다른 위치에 프로퍼티 파일을 사용한다고 해도 먼저 열린 프로퍼티 값이..

    java.lang.Error: Unresolved compilation problem

    프로젝트를 git을 통해서 내려받고 실행시키고자 할때, 가끔 다음과 같은 오류가 발생할 때가 있다. java.lang.Error: Unresolved compilation problem 이 경우 해결방법은 2가지이다. 1. 프로젝트 clean2. tomcat clean, tomcat 디렉토리 clean

    Junit 정리 - 서비스 테스트 하기

    전장에서 컨트롤러 테스트 방법을 공부하였다. 이번에는 서비스를 가지고 테스트 하는 방법을 설명한다. Assert 시리즈로 검증하기 - Assert 시리즈를 활용하면 해당 메소드의 결과값이 true인지 검증 뿐만 아니라 null 인지 등도 테스트를 진행할 수 있다. Assert로 설정한 대로 동작하지 않으면 테스트 도중 실패로 끝나기 때문에, 잘못된 결과 값이 나온다는 것을 확인하고 코드를 수정할 수 있다. Assert 관련 메서드 종류는 다음과 같다. Assert 메서드 종류설명assertArrayEquals(a, b)배열 a와 b가 일치함을 확인한다.assertEquals(a, b)객체 a와 b가 일치함을 확인한다. (객체에 정의되어 있는 equals를 통해 비교한다.)assertSame(a, b)객체..

    Junit 정리 - MockMvc를 이용한 컨트롤러 테스트

    입사 후 개발을 한지 벌써 3년 차가 되었다. 개발을 처음 접할 때는 어떻게 구현해야 할지 어떻게 만들어야 하는지에 대한 관심이 더 컸다. 하지만 요새는 개발 후 어떻게 테스트를 진행하여 먼저 버그를 예방(?)할 수 있는지 고민하기 시작했다.성격이 덜렁거리거나 대충 하는 스타일은 아니었는데, 요즘 열정이 많이 식어서 그런지 단순한 부분에서 버그를 유발하는 것 같아서 TDD를 통해 고쳐보려고 Junit을 공부하기로 했다.스프링의 각 영역인 Controller. Service, Dao에 대한 테스트를 총 3장에 걸쳐서 설명하겠다.그리고 Mockito에 대한 설명을 추가로 진행하겠다. 0. 공통 우선 스프링에서 테스트를 진행하기 위해서는 몇가지 라이브러리가 필요하다. 1 2 3 4 5 6 7 8 9 10 11..

    RestController import 할때 오류가 발생하는 경우.

    RestController 사용을 위해 org.springframework.web.bind.annotation.RestController 를 import할때 에러가 발생할 때가 있다. 그 경우에는 다음과 같이 maven의 webmvc 버전을 맞쳐 주어야 한다. org.springframeworkspring-webmvc4.1.6.RELEASE

    UriComponents 클래스

    UriComponents 클래스 UriComponents클래스는 Path나 query에 해당하는 문자열들을 추가해서 원하는 URI를 생성할 때 사용한다. UriComponents uricomponets = UriComponentsBuilder.newInstance().path("/board/read").queryParam("bno",12).queryParam("perPageNum", 20).build(); logger.info(uricomponets.toString()); 다음과 같이 지정하게 되면, INFO : com.wedul.spring.UriComponentsTest - /board/read?bno=12&perPageNum=20 다음과 같이 설정되어 출력된다.

    Mybatis의 동적 SQL

    Mybatis의 동적 SQL Mybatis가 가지는 표현식은 다음과 같다. IfChoose(when, otherwise)Trim(where, set)Foreach 기능 사용 예 설명 if AND title like #{title} 코드로 작성할 때의 if 구문에 대한 처리 -> 참 거짓을 구별해서 사용할 때 처리한다. Choose, When, otherwise AND title like #{title"" AND author_name like #{author.name} AND featured = 1 switch와 같은 상황에 대한 처리 Trim, Where,set … 로직을 처리하면서 필요한 구문을 변경 foreach

반응형