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。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM