无法实例化 Spring MVC 控制器
Unable to instantiate Spring MVC Controller
我是 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 调度程序 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>
您的运行时 class 路径中一定缺少 JavaEE 注入 API。如果在 class 路径中找到 class,Spring 将仅查找 @Inject
。
您可以从 Maven here 获取它并将其添加到您的运行时 class 路径(手动或通过依赖项)。
我是 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 调度程序 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>
您的运行时 class 路径中一定缺少 JavaEE 注入 API。如果在 class 路径中找到 class,Spring 将仅查找 @Inject
。
您可以从 Maven here 获取它并将其添加到您的运行时 class 路径(手动或通过依赖项)。