无法实例化Spring MVC Controller

时间:2015-03-11 14:17:26

标签: java spring-mvc

我是Spring的新手,有一个简单的问题。 我编写了一个带有简单构造函数的简单控制器,注释如下所示。

@Controller
public class LoginController
{
   private LoginService loginService;

   @Inject
   public LoginController(LoginService loginService)
   {
      System.out.println("LoginController constructor - initializing  login service");
      this.loginService = loginService;
   }

当我尝试在浏览器中访问我的网络应用时,出现以下错误:  找不到默认构造函数;

当我用 @Autowired 注释替换 @Inject 注释时,它可以正常工作。有谁能解释为什么?我读过的所有内容都表明它们具有相同的行为。我使用的是Tomcat 6.0.43。

另外,下面是我的spring dispatcher servlet xml:

<mvc:resources mapping="/resources/**" location="/resources/" />    
<mvc:annotation-driven/>                                            

<context:component-scan base-package="com.rockwell_collins.webquery"/>  

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="viewClass"   value="org.springframework.web.servlet.view.JstlView"/>
   <property name="prefix"    value="/WEB-INF/views/"/>
   <property name="suffix"    value=".jsp"/>
</bean>

1 个答案:

答案 0 :(得分:0)

您必须缺少运行时类路径中的JavaEE Inject API。如果在类路径中找到类,Spring将只查找@Inject

您可以从Maven here获取它并将其添加到您的运行时类路径(手动或通过依赖项)。