有人可以告诉如何在Spring MVC中获取服务层的bean。获取服务层bean的一种方法是使用@Service注释但是如何做到这一点,我不知道。 控制器:
@Controller
public class ConfigureApplicationController {
@RequestMapping(value="/ConfigureApplication.html", method=RequestMethod.GET)
public ModelAndView getListOfAllConfigureApplication(){
AppConfigureServiceImpl getService=new AppConfigureServiceImpl();
ArrayList<ConfigureApplication> results =getService.getListOfAllAppConfigure();
ModelAndView model=new ModelAndView("ConfigureApplication");
model.addObject("results",results);
return model;
}
和serviceImpl是:
@Service("appConfigureServiceImpl")
public class AppConfigureServiceImpl implements AppConfigureService {
public ArrayList<ConfigureApplication> getListOfAllAppConfigure(){
@SuppressWarnings("resource")
ApplicationContext ctx=new ClassPathXmlApplicationContext("spring-dispatcher-servlet.xml");
AppConfigureDAOImpl getAll=ctx.getBean("appConfigureDAOImpl", AppConfigureDAOImpl.class);
ArrayList<ConfigureApplication> results =getAll.getList();
return results;
}
在这里我已经创建了AppConfigureServiceImpl的对象(在服务层中)然后我调用了方法但是通过这样做我在春天没有使用依赖注入。我知道我可以使用@Service注释做到这一点,但我不知道语法。有人可以帮我解决这个问题。
答案 0 :(得分:1)
在AppConfigureServiceImpl上添加一个简单的@Service注释(你不必指定&#34; appConfigureServiceImpl&#34;就像你一样)。
然后通过在ConfigureApplicationController类中添加以下内容,在控制器中自动注入服务实例:
@Autowired
AppConfigureService appConfigureService;
现在您可以这样称呼它:appConfigureService.getListOfAllAppConfigure();
请注意,要进行注入,您需要确保在配置文件中设置了componentScan属性,以扫描包含要注入的类的包。在您的情况下,包含AppConfigureServiceImpl。
的包<context:component-scan base-package="com.my.servicepackage" />
另请注意,您应该对dao执行相同的操作,而不是创建新的应用程序上下文并从中获取它。即添加一个
@Autowired
AppConfigureDAO appConfigureDAO;
AppConfigureServiceImpl中的属性并使用它。