zoukankan      html  css  js  c++  java
  • 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 开发webservice
    myeclipse下jsp页面汉字不能保存问题
    java web项目的部署
    Java小白手记:WEB项目等
    操作系统学习笔记:虚拟内存
    面向接口编程
    WEB端应该使用DataTable/DataSet吗?
    ExtJs grid合并单元格
    操作系统学习笔记:内存管理
    Oracle中长度为0字符串与null等价
  • 原文地址:https://www.cnblogs.com/Big-Boss/p/10761514.html
Copyright © 2011-2022 走看看