2012-04-05 1 views
0

Я написал это приложение с затмением, и оно работает. Но когда я развертываю его как автономное/консольное приложение, он не может найти компонент StartApp, который я ввел. вот коды:Весна 3.1 аннотированная автоустановка на автономном приложении

Основной приложение:

@Component 
public class StartApp { 
    @Autowired 
    private Processor proc; 

    public StartApp() { 
     System.out.println("Starting App!"); 
    } 
    private void say() { 
     proc.say(); 
    } 
    public static void main(String[] args) { 
     ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 
     StartApp app = ctx.getBean(StartApp.class); 
     app.say(); 
    } 
} 

обслуживание:

@Service 
public class Processor { 
    public Processor() { 
     System.out.println("Processor initialized!"); 
    } 
    public void say() { 
     System.out.println("hello!"); 
    } 
} 

и applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.1.xsd"> 

    <context:component-scan base-package="test.spring.desktop"/> 
</beans> 

я действительно помещал все пружинные библиотеки и регистратор включая SLF4J библиотеки. и для консольной команды я поставил этот:

java -cp lib/*:lib/spring-3.1/*:test-spring-desktop.jar test.spring.desktop.StartApp 

тогда я получил эти сообщения об ошибке:

Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [test.spring.desktop.StartApp] is defined: expected single bean but found 0: 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:271) 
     at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1101) 
     at test.spring.desktop.StartApp.main(StartApp.java:24) 
+0

Где и как ваш бит 'StartApp' определен? – bvulaj

+0

его в той же папке. вот структура: /lib/spring-3.1/{all-spring3.1-lib} /Lib/{SLF4J-ЛИЭС} /test-spring-desktop.jar /старт-тест-весна-рабочий стол .sh –

+0

извините за беспорядок на мой комментарий, im все еще пытается получить правильное форматирование в комментариях. –

ответ

0

Попробуйте поставить в applicationCntext.xml этой конфигурации:

<context:annotation-config />