2012-12-17 27 views
5

sınıfı olarak değil:Yay: @PostConstruct

package myproject.web.factory.components; 

@Component 
public class AppComponentFactory{ 
} 

B sınıfı

package myproject.web.components; 
import myproject.web.factory.components.AppComponentFactory; 

@Component 
public class AdminTabSheet{ 

    @Autowired 
    private AppComponentFactory appComponentFactory; 

    public AdminTabSheet() { 
    } 

    @PostConstruct 
    public void init() { 
     // does something with appComponentFactory 
    } 
} 

yapılandırma XML:

<context:component-scan base-package="myproject.spring" /> 

WebConfig.java:

package myproject.spring.config; 

@Configuration 
@ComponentScan(basePackages = { "myproject.web.components"}) 
public class WebConfig { 

Ben http://docs.oracle.com/javaee/5/api/javax/annotation/PostConstruct.html tüm kuralları izlemiştir:

  • Sadece bir yöntem bu açıklama ile açıklamalı edilebilir.
  • yöntem EJB önleyiciler
  • yöntemin dönüş türü boş OLMALIDIR durumunda dışında herhangi bir parametre ZORUNLU.
  • Yöntem, kontrol edilen bir istisna atmamalıdır ZORUNLU dur.
  • PostConstruct uygulamasının uygulandığı yöntem, herkese açık, korunan, paket özel veya özel olabilir.
  • Bu yöntem statik OLMAMALIDIR.

Herhangi bir fikir? Hiçbir yazım hatası yoktu

cevap

2

, ben AppComponentFactorymyproject.web.factory pakette olduğu için doğru

@ComponentScan(basePackages = { "myproject.web"}) 

olacağına inanıyorum.