2012-01-04 36 views
6

Làm cách nào để tôi có thể yêu cầu Spring chạy phương thức init đó? Tôi cần phải có được lớp Proxied Async và làm một số khởi tạo với nó.Cấu hình Spring Init Method

@Configuration 
@EnableAsync 
public class Config { 

@Bean 
public AsyncBean asyncProxyBean(){ 
    return new AsyncBean(); 
} 

public void init(){ 
    doStuffWithProxy(asyncProxyBean()); 
} 

@Bean 
public String thisIsHack(){ //this runs the init code but bean is a bit hacky 
    doStuffWithProxy(asyncProxyBean()); 
    return ""; 
} 

} 

Trả lời

0
  • thường bạn có thể làm những việc để các đối tượng gốc. Bạn hiếm khi cần phải làm việc với proxy - cách mà bạn dựa vào một số internals mùa xuân (cách nó làm việc với proxy động)
  • nếu bạn thực sự cần proxy, sau đó tôi đoán bạn có thể thử sử dụng một BeanPostProcessor
+0

Trong trường hợp của tôi các proxy là một AsyncEventHandler và tôi cần phải đăng ký xử lý với nhà sản xuất sự kiện. –

4

Sử dụng @PostConstruct chú thích cùng với:

  • <context:annotation-config /> hoặc
  • <bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />

Xem here để biết chi tiết. Đây là chú thích Java EE, vì vậy có thể không phù hợp trong môi trường của bạn.

+0

Tôi không cần bất kỳ xml nào để làm việc này..chỉ cần @PostConstruct đáp ứng –

+1

@DD. Không biết gì về môi trường của bạn, bởi vì bạn không cung cấp bất kỳ thứ gì, không thể đưa ra một câu trả lời hoàn hảo, vì vậy tôi đã đưa vào một số chi tiết - thay vì chỉ là một liên kết mà SO cau mày. Chú thích này sẽ không được xử lý trừ khi * something * đã chỉ ra quá trình xử lý chú thích sẽ được thực hiện. –

Các vấn đề liên quan