Spring中IOC DI AOP註解到和配置的含義

<context:annotation-config/>

  1. 這個出如今Spring的applicationContext.xml配置文件中
  2. 主要到目的是開啓 將bean對象中包含的其餘bean對象裝配到當先bean中的功能
  3. @Autowired 標註了那個屬性是須要被裝配的
  4. @Resource 和@Autowired 同樣也是標註那個屬性是須要被裝配的
  5. 用於激活那些已經在spring容器裏註冊過的bean
  6. <context:component-scan/>具備相同的功能

@Autowired

  1. @Autowired屬於DI的實現
  2. @Autowired出如今類對象的屬性上或者這個屬性的setter方法上
  3. @Autowired和<context:annotation-config/>配合實現的自動裝配
  4. @Autowired屬於springframework框架的類
  5. @Autowired註解是按照類型(byType)裝配依賴對象,默認狀況下它要求依賴對象必須存在
  6. @Autowired若是咱們想使用按照名稱(byName)來裝配能夠在後面加上@Qualifier("className")

@Resource

  1. @Resource屬於DI的實現
  2. @Resource出如今類對象的屬性上或者這個屬性的setter方法上
  3. @Resource和<context:annotation-config/>配合實現的自動裝配
  4. @Resource屬於javax包的類
  5. @Resource要想指定具體實現類能夠在後面加上@Resource(name="className")
  6. 使用name屬性,則使用byName的自動注入策略,而使用type屬性時則使用byType自動注入策略。若是既不制定name也不制定type屬性,這時將經過反射機制使用byName自動注入策略。

<context:component-scan base-package="com.yinyi.pojo"/>

  1. <context:component-scan base-package="com.yinyi.pojo"/>是開啓對Bean進行註解配置
  2. com.yinyi.pojo是須要裝載的Bean對象的包地址
  3. <context:component-scan base-package="com.yinyi.pojo"/>和@Component配合使用
  4. 若是在標籤中添加<context:include-filter type="annotation"
                expression="org.springframework.stereotype.Controller" />ispatcherServlet上下文, 只管理@Controller類型的bean, 忽略其餘型的bean, 如@Service

@Component

  1. 爲類加上@Component註解,表示這是一個bean,由Spring進行管理
  2. @Component屬於ioc的實現

<aop:aspectj-autoproxy/>

  1. 找到被註解了的切面類,進行切面配置
  2. 與@Aspect和@Around相關

 

@Aspect

  1. 表示這是一個切面
  2. 出如今切面Class頭上通常隨後跟着@Component 
  3. AOP的實現

@Around

  1. 標記在有ProceedingJoinPoint參數的方法上
  2. 通常寫法是@Around(value = "execution(* com.yinyi.service.ProductService.*(..))")這表示對知足以下條件的方法調用,進行切面操做: * 返回任意類型 com.yinyi.service.ProductService.* 包名以 com.yinyi.service.ProductService 開頭的類的任意方法 (..) 參數是任意數量和類型
相關文章
相關標籤/搜索