2011-04-18 124 views
11

嗨, 我在調度類使用彈簧3.0石英。我已經彈簧自動裝配工作不

private static final ClassPathXmlApplicationContext applicationContext; 
static { 
    applicationContext = new 
     ClassPathXmlApplicationContext("config/applicationContext.xml"); 
} 

問題創建的應用程序上下文是沒有@Autowired豆實際上得到自動有線,所以我必須手動設置的依賴關係是這樣的:在哪裏

<bean class="com.spr.service.RegistrationServiceImpl" id="registrationService"> 
    <property name="userService" ref="userService" /> 
</bean> 

例子我使用@Autowired表現:

public class RegistrationService { 
    @AutoWired private UserService userService; 
    // setter for userService; 
} 

public class UserService{ 
    // methods 
} 

我也確信,使批註配置在我的Spring配置:

<context:annotation-config/> 
<bean id="registrationSevice" class="RegistrationService"/> 
<bean id="userService" class="UserService"/> 

爲什麼@Autowired不適合我?

+0

提示:這是一個更好的模式通過構造函數自動裝配: '私人最終UserService userService; @Autowired public ResgistrationService(UserService userService){// setter}' – hisdrewness 2011-04-18 01:11:15

回答

22

您沒有提供UserService類的源代碼,所以我不能確定你的問題。看起來像UserService類缺少'構造型'註釋,如@Component或@Service。您還可以使用下列配置春季類路徑掃描:

<?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" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <!-- Add your classes base package here -->   
    <context:component-scan base-package="your.package"/> 

    </beans> 

你豆必須包括春典型化註解等中的一種:

package your.package; 

@Service 
public class UserService{ 
} 
+0

我懷疑是否需要@Service註釋,無論如何我會試一試。 – prassee 2011-04-18 03:57:21

+0

@prassee @Component(或sub)Annotation需要爲這個類創建一個bean。你也可以用XML來做到這一點,但我相信這不是你想要的 - 或者它? – Ralph 2011-04-18 07:32:17

+0

@Ralph是的。我使用spring mvc 3.0,其中applicationContext.xml具有,控制器使用@controllers註釋,依賴對象使用@Autowired Service服務註釋。所以我期待在這裏。我將與@Service嘗試爲我服務類 – prassee 2011-04-18 09:10:14

8

Atlast我把它加入了

解決
<context:component-scan base-package="your.package"/> 

在我applicationContext.xml中。謝謝大家的支持。