Java 各级注解及@Autowired注入为null解决办法

Posted big-boss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 各级注解及@Autowired注入为null解决办法相关的知识,希望对你有一定的参考价值。

  

   1、@controller 控制器

  • 用于标注控制层,相当于struts中的action层。

    2、@service 服务层

  • 用于标注服务层,主要用来进行业务的逻辑处理。

    3、@repository DAO层(Repo层)

  • 用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件。

    4、@Autowired 注入实例

  • 表示被修饰的类需要注入对象,spring会扫描所有被@Autowired标注的类,然后根据 类型 在ioc容器中找到匹配的类注入。

    5、@Component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>

  • 泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

  相对于@Autowired和@Component注解,个人理解实际用法为:

    如在普通类中用到需@Autowired注入实例,则需将普通类使用@Component注解标明,不然使用@Autowired注入的实例为null。

    一般普通类实例直接new即可,而在有上述两个注解的普通类在实例时需要使用@Autowired注入,如果直接使用new实例,则该类中使用@Autowired注入的实例为null。

  实例如下:

  技术图片技术图片

    在ExcelUtil工具类中需要使用@Autowired注入需用到的实例,则改工具类需用@Component注解标明,在使用该工具类时需要用@Autowired注入实例,如果使用ExcelUtil excelUtil = new ExcelUtil(); new实例,则工具类中注入的实例modelPropdictRepo为null。

 

以上是关于Java 各级注解及@Autowired注入为null解决办法的主要内容,如果未能解决你的问题,请参考以下文章

解决非controller使用@Autowired注解注入报错为java.lang.NullPointerException问题

@Autowired 与@Resource的区别

解决非controller使用@Autowired注解注入为null问题

java-普通类文件@Autowired自动注入为null

Spring中@Autowired注解@Resource注解的区别

Java 求spring用@Autowired进行方法参数注入例子。