나는 두 개의 빈을 자바 @Configuration
으로 정의했다. 그들 중 일부는 꽤 긴 계산을 수행하는 메소드를 가지고 있으며 메소드가 호출 될 때마다 계산을하지 않으려면 주어진 인자에 대해 리턴 된 값을 캐시하고 싶습니다.Spring을 사용하여 bean 메소드의 반환 값을 선언적으로 캐싱하기
예 :
@Configuration public class Config {
@Bean public CalculatorBean calcBean() {
return new CalculatorBean();
}
}
public class CalculatorBean {
public int hugeCalculation(int arg1, String arg2, double[] arg3) {
// ... very long calculation ...
}
}
적으로는, 내가 정의 @Cached(method="hugeCalculation", size=1000, ttl=36000)
일종의 @Configuration
에 @Bean
방법에 주석을 자동으로 AOP 프록시에 그 콩을 래핑하는 후 처리 빈 공장을 가지고 싶습니다.
이런 종류의 솔루션이 있습니까? 그렇지 않다면, 이것을하기 위해 어떤 클래스의 클래스를 사용해야합니까?
'@ Bean' 주석 메서드는 어쨌든 한 번만 호출해야합니다 (콩이 싱글 톤이라고 가정). 그렇지 않으면 무언가가 잘못 구성되었습니다. 예를 게시하십시오. – skaffman
나는 그 콩의 방법 *을 의미합니다. – Fixpoint