web/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()를 호출한다. 이런 초기화 메서드와 소멸 메서드의..
Mybatis에서 parameterType을 List로 insert하기
Mybatis에서 parameterType을 List로 지정하여 쿼리를 수행하고 싶은 경우 다음과 같이 진행한다, 1234567891011121314151617181920212223// 전송 데이터 형식List accouts = new ArrayList();accounts.add(new AccountDto("wedul", 123);accounts.add(new AccountDto("cjung", 456); accountDao.insertAccounts(accounts); // MybatisINSERT INTO account( id, age) VALUES ( #{item.id} ,#{item.age}) Colored by Color Scriptercs
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
spring에서 List 또는 Array 데이터를 Controller에서 받기
컨트롤러에서 List데이터를 받아서 매핑하기 위해서 필요한과정을 정리해본다. 1. List 데이터를 받기 먼저 controller에서 @RequestBody List를 받도록 설정한다. 그리고 ajax를 통해서 요청하는 부분에서 다음과 같이 진행한다. 1234567let data = [{'name':'cjung', 'age':30}, {'name':'wedul', 'age':28}]; $.ajax({ url:...., type:..., param: JSON.stringify(data);});Colored by Color Scriptercs 2. DTO객체 안에 LIST 변수에 데이터를 매핍 하고자 하는경우 기존에 습관대로 진행을 다음과 같이 먼저 해보자. 12345678910111213141516// j..
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