在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