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。