如何在Spring MVC中使用@Service注释来创建Service层的bean

时间:2014-11-27 07:24:25

标签: spring spring-mvc

有人可以告诉如何在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注释做到这一点,但我不知道语法。有人可以帮我解决这个问题。

1 个答案:

答案 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中的

属性并使用它。