如何在Spring MVC中从Controller调用组件或服务

时间:2014-11-26 20:14:03

标签: java spring spring-mvc

我想在类中保存区域(经过身份验证的用户的属性)。区域列表从数据库中获取并存储为Spring Controller类中每个用户的属性,假设" A"。

现在这个区域属性我想在春天拦截器中获取" B"并希望验证用户所在的区域作为每个http请求中的参数,以及存储在region属性中的参数。

我被建议使用服务或组件来存储区域列表,以便拦截器B和控制器类A都可以使用该服务或组件。

在这种情况下,任何人都可以告诉我如何使用服务或组件。

1 个答案:

答案 0 :(得分:5)

你的问题并不完全清楚,但我会尽我所能。

我想你是说你想在Spring MVC HandlerInterceptor和Controller中使用相同的类?

您应该使用依赖注入:

使用@Service注释服务类(这可以让Spring找到您的服务)

@Service
public class MyRegionService...

将组件扫描添加到您的应用程序上下文配置(这可以找到服务)

<context:component-scan base-package="com.example.yourapp"/>

将服务作为类成员添加到您需要的任何位置,并使用@Autowired注释(这会注入服务)

@Controller
public class MyController {

  @Autowired
  MyRegionService myRegionService;
}

public class MyHandlerInterceptor extends HandlerInterceptorAdapter {

  @Autowired
  MyRegionService myRegionService;
}