在SSM框架中我设置拦截器filter不能通过注解获取到实现类

我在用注解注入实现类的时候,出现了这样的错误:如以下截图:

这个地方报出的错误是说明我的一个接口类型的类没有获取到,后来我就想要是我的实现类没有获取到那么我就直接new一个实现类然后再进行调用就会出现空指针异常:

但是程序在加载的时候不会报错,但是在运行的时候就会报错,

但是我刚刚又运行了一下好像又可以,大家也可以尝试一下看是哪里的问题;

 

 那么我就来解释一下在SSM框架中为何在注解器中使用注解不能直接注入实现类吧!!!

这个应该是跟spring框架有关的自动扫描有关:

我在我的配置文件中是这样配置的:是自动扫描cn.hncu下面的包

然而自动扫描包有以下几个小细节要关注:一般你配置自动扫描如果要注入实现类的话你就要在component下面才能注解成功

 

原因:Spring将扫描该文件夹,并找出Bean(注解为@Component)并注册到 Spring 容器。

自动组件扫描注释类型

在Spring2.5中,有4种类型的组件自动扫描注释类型
  • @Component – 指示自动扫描组件。
  • @Repository – 表示在持久层DAO组件。
  • @Service – 表示在业务层服务组件。
  • @Controller – 表示在表示层控制器组件。

所以我们单独使用@Resource注解的时候并不能注解到实现类,因为它不是Spring自己配置的javaBean所以才会出现空指针异常;

下面有一篇别人的博客,讲的特别详细,大家可以参考一下:http://www.cnblogs.com/digdeep/p/4770004.html?tvd

 

posted @ 2017-09-10 21:40  折腾青春  阅读(1420)  评论(0编辑  收藏  举报