Spring中IOC DI AOP註解到和配置的含義
<context:annotation-config/>
- 這個出如今Spring的applicationContext.xml配置文件中
- 主要到目的是開啓 將bean對象中包含的其餘bean對象裝配到當先bean中的功能
- @Autowired 標註了那個屬性是須要被裝配的
- @Resource 和@Autowired 同樣也是標註那個屬性是須要被裝配的
- 用於激活那些已經在spring容器裏註冊過的bean
- <context:component-scan/>具備相同的功能
@Autowired
- @Autowired屬於DI的實現
- @Autowired出如今類對象的屬性上或者這個屬性的setter方法上
- @Autowired和<context:annotation-config/>配合實現的自動裝配
- @Autowired屬於springframework框架的類
- @Autowired註解是按照類型(byType)裝配依賴對象,默認狀況下它要求依賴對象必須存在
- @Autowired若是咱們想使用按照名稱(byName)來裝配能夠在後面加上@Qualifier("className")
@Resource
- @Resource屬於DI的實現
- @Resource出如今類對象的屬性上或者這個屬性的setter方法上
- @Resource和<context:annotation-config/>配合實現的自動裝配
- @Resource屬於javax包的類
- @Resource要想指定具體實現類能夠在後面加上@Resource(name="className")
- 使用name屬性,則使用byName的自動注入策略,而使用type屬性時則使用byType自動注入策略。若是既不制定name也不制定type屬性,這時將經過反射機制使用byName自動注入策略。
<context:component-scan base-package="com.yinyi.pojo"/>
- <context:component-scan base-package="com.yinyi.pojo"/>是開啓對Bean進行註解配置
- com.yinyi.pojo是須要裝載的Bean對象的包地址
- <context:component-scan base-package="com.yinyi.pojo"/>和@Component配合使用
- 若是在標籤中添加<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller" />ispatcherServlet上下文, 只管理@Controller類型的bean, 忽略其餘型的bean, 如@Service
@Component
- 爲類加上@Component註解,表示這是一個bean,由Spring進行管理
- @Component屬於ioc的實現
<aop:aspectj-autoproxy/>
- 找到被註解了的切面類,進行切面配置
- 與@Aspect和@Around相關
@Aspect
- 表示這是一個切面
- 出如今切面Class頭上通常隨後跟着@Component
- AOP的實現
@Around
- 標記在有ProceedingJoinPoint參數的方法上
- 通常寫法是
@Around(value = "execution(* com.yinyi.service.ProductService.*(..))")
這表示對知足以下條件的方法調用,進行切面操做: * 返回任意類型 com.yinyi.service.ProductService.* 包名以 com.yinyi.service.ProductService 開頭的類的任意方法 (..) 參數是任意數量和類型
歡迎關注本站公眾號,獲取更多信息