@Async 와 비동기

@Async 와 비동기 대한 고찰 Spring의 @Async는 비동기적으로 메소드를 실행 한다. 비동기는 리턴값을 받을 수 없다. 그건 당연한 거다. 설사 받는다해도 null값이 떨어질 것이다. 한가지 받을 방법이 있는데 그게 바로 java.util.concurrent.Future 타입으로 받아야 된다. @Async public Future<String> getFuture() throws InterruptedException { return new AsyncResult<>(“return”); } 이런 식으로 리턴 값을 받을 수 는 있다. 사용해 보자 Future<String> stringFuture = asyncBean.getFuture(); String result = stringFuture.get(); 그런데 조금이상하다 비동기로 리턴값을 받으려면 getFuture이라는 메소드가.. Read More

spring @Autowired

spring Autowired 맨날 아무 생각 없이 @Autowired @Inject @Resource 이것들을 쓰다보니 그냥 의존성 주입인 줄만 알았다. 물론 틀린 말은 아니다.하지만 그게 다가 아니다. 어떤 소스중에 factory-method 쓰면서 Autowired 하지않고 getInstance를 그대로 호출 하는 소스가 있었다. <bean id=”classA” class=”com.example.ClassA” factory-method=”getInstance” > private static ClassA instance = new ClassA(); public static ClassA getInstance() { return instance; } 대충 소스는 이것! 그럴듯한 소스이다. 뭐 저 인스턴스를 그냥 써도 무방하다. private final ClassA classA;.. Read More