2013-10-14 27 views
23

xml yerine bir java yapılandırması üzerinden yayı yapılandıran yeni bir uygulama yapıyorum. Bu uygulama, xml stili yapılandırmasını kullanan bir modüle bağımlıdır.Yay ile birlikte xml ve java yapılandırması

No qualifying bean of type [com.myModule.myServiceImp] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 

Bu fasulye modülün applicationContext.xml beyan edilmelidir: Ben denemek ve benim app başlatırken, aşağıdaki hatayı alıyorum. Bunu halletmenin doğru yolu nedir? Ben uygulamanın web.xml''deki birlikte uygulama bağlamları çekimi olsaydı ben olduğu gibi ben sadece ekleyerek çalıştı:

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      classpath:com/myModule/appbase-context.xml 
      com.myApp.AppConfig 
     </param-value> 
    </context-param> 

Ama yine aynı hata var. Bunu yapmanın doğru yolu nedir?

cevap

44

Yapılandırma sınıfınızda, @ImportResource ek açıklaması yoluyla xml yapılandırmasını alabilirsiniz. Böyle

şey:

<context-param> 
    <param-name>contextClass</param-name> 
    <param-value> 
     org.springframework.web.context.support.AnnotationConfigWebApplicationContext 
    </param-value> 
</context-param> 
+0

I:

@Configuration @ImportResource({"classpath:appbase-context.xml"}) public class AppConfig { // @Bean definitions here... } 

Eğer Spring'in Java Yapılandırması kullanırken, başvurunuzun bağlamı için kullanılacak sınıf diyor ek context-param belirtmek gerektiğini unutmayın İkinci kısmı zaten aldım ama hatırlattığın için teşekkürler. Context.xml gelince, sadece onu almam gerekiyor ve benim için geri kalanı var mı? Ya da bir şekilde "koşmaya" ihtiyacım var mı? –

+1

'ApplicationContext'' @ Configuration' sınıfının yükünü önyükleme yaparken, bu açıklama için tarar ve otomatik olarak da yükler. –

+1

@ImportResource bunu çalıştıracaktır. –

İlgili konular