spring02-IOC註解

spring的IOC註解


曾經的xml中的bean標籤配置git

<bean id="" class="" init-method="" destroy-method="" scope="">
   <property name="" value="" | ref=""/>
</bean>

依據標籤能夠對註解進行分類:github

  1. 用於建立對象的
    • 其做用和xml中的bean標籤同樣
    1. @Component:
      • 位置: 類上
      • 做用: 將當前對象類存入spring容器中
      • value屬性: 至關於設置bean標籤的id屬性, 默認值爲類名首字母小寫
    2. @Controller, @Service, @Repository做用和@Component同樣, 分別用在控制層, 服務層和持久層(其實底層就是繼承機制)
  2. 用於注入數據的
    • 其做用和xml中bean的子標籤property同樣
    • 1~3只能注入bean類型的數據, 集合類型只能經過xml注入
    1. @AutoWired
      • 位置: 變量或方法上
      • 做用: 自動按照類型注入. 只要容器中有惟一的bean對象的類型與要注入的變量類型匹配, 就能夠注入成功
      • 注意:
        1. 若是IOC容器中沒有任何bean的類型與要注入的變量類型相匹配, 就會報錯
        2. 若是IOC容器中有多個bean類型與要注入的變量類型相匹配時, 首先會按照匹配的類型找bean對象, 而後會按照id找與變量名相同的bean對象, 不然會報錯
    2. @Qualifier
      • 位置: 變量|方法|方法參數上, 須要與@Autowired一塊兒使用
      • 做用: 在按照類型注入的基礎上再按照變量名注入. 給類成員注入時不能單獨使用, 可是給方法參數注入時能夠
      • 屬性: 用於指定注入的bean的id
    3. @Resource(name = "beanDao")
      • 位置: 變量或方法上, 須要與@Autowired一塊兒使用
      • 做用: 直接按照bean的id注入. 能夠獨立使用
      • 屬性:
        1. name: 用於指定bean的id
    4. @Value
      • 做用: 用於注入基本數據類型和String類型的數據
      • 屬性: 用於指定數據的值. 能夠使用spEl(EL表達式, 出如今什麼地方就是什麼的表達式)
  3. 用於改變做用範圍的
    • 其做用和xml中bean標籤的scope屬性同樣
    1. @Scope
      • 屬性: 指定範圍的取值. 經常使用的有singleton和prototype
  4. 和生命週期相關的(瞭解)
    • 其做用和xml中bean標籤的init-method和destroy-method屬性同樣
    1. @PreDestroy: 指定銷燬方法
    2. @PreConstruct: 指定初始化方法

本文代碼: 此處 的 spring02-annotationspring

相關文章
相關標籤/搜索