- 비동기 : 하나의 요청이 모두 처리되기를 기다리는 것이 아니라 처리되지 않더라도 제어권을 다음 요청에 넘기는 것을 비동기라 한다. - 제약사항 : 1. public 한 메소드에만 써야한다. 2. 같은 클레스 안에서 @Async를 적용한 메소드를 사용하면 작동하지 않는다. 3. return Type이 void이거나 Future객체를 사용해야 한다. - @Async를 사용하기 위한 설정@EnableAsyncpublic class AppConfig implements AsyncConfigurer {@Overridepublic Executor getAsyncExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.s..
현재 페이지에서 다른 페이지로 이동하는 방법은 Forward와 Redirect 두 가지 방식이 있는데 처리 형태가 다르다. - 이동 경로 : client -> server -> server -> client - 이동 전과 후의 URL이 같다. - 이동 전과 후페이지에서 request와 response객체를 공유한다. - 이동 경로 : client -> server -> client -> server -> client - 이동 전의 URL이 이동하는 URL로 바뀐다. - 이동 전과 후페이지에서 request와 response객체를 공유하지 않는다. * Redirect는 GET방식으로만 동작을 한다. Fo..
FreeMarker에서 Request와 Session의 Attribute를 ${...}와 같이 동일하게 사용할 수 있다. - ex) request.set("name", "hong"); "${name}" == "hong" session.set("name", "hong"); "${name}" == "hong" 만약 명시적으로 request나 session에 있는 name만 사용 하고 싶다면 아래와 같이 사용하면 된다. - ex) request.set("name", "hong1"); "${Request.name}" == "hong1" session.set("name", "hong2"); "${Session.name}" == "hong2"
- *로 대체하기 기능 설정 Windows > Preferences > Java > Code Style > Organize Imports 메뉴로 간다. - Number of imports needed for.* : ex) org.eclipse.*; - Number of static imports needed for .* : ex) java.lang.Math.*; 숫자를 수정하면 해당 숫자 이상으로 클레스나 메소드가 겹치면 *로 대체 해준다.
- eclipse에는 'ctrl + shift + O'를 누르면 자동으로 import를 해주는데 static 클레스들은 import가 안된다. 자동으로 import하기 위해서는 아래와 같은 설정을 해주면된다. Windows > Preferences >Java > Editor > Content Assist > Favorites 메뉴로 간 후 오른쪽에 있는 New Type 버튼을 클릭하고 추가해 주면 된다. ex)org.hamcrest.CoreMatchers org.hamcrest.Matchersorg.junit.Assert
- replaceAll에 정규표현식을 사용해서 이미지의 경로를 String에 넣으려고 할 때 separator가 사라지는 이슈가 발생했다. 실행 코드 : separator.replaceAll(separator, "image" + separator + "default.jpg"); 위와 같이 실행하면 아래와 같이 나온다. 결과 : imagedefault.jpg 검색결과 Windows의 Separator는 역슬레시이고 정규표현식에서 역슬레시 두 개를 역슬레시 하나로 인식하고 자바 또한 동일하게 인식하기 때문에 일어나는 이슈였다. 그래서 하나의 String값으로 가지고 있던 이미지의 경로를 split을 통해 경로와 이름으로 분리하여 separator를 두번 사용 하려고 했다. 실행 코드 : separator.s..
- 내가 경험한 exception 모음 - java.lang.exceptionininitializererror : 객체를 생성할 때 발생하는 exception - org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'common': Bean with name 'common' has been injected into other beans [userServiceImpl] in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do n..