1、藉助“第三方”實現具有依賴關係的對象之間解耦,其中的第三方就類似於中介,在這兒指的是Spring
2、面向接口編程(利用接口對子類的動態代理實現多態)
3、實現了業務層和數據訪問層的解耦
4、實現步驟
1:編寫接口Dao
2:編寫接口實現類Impl
3:設計服務層,編寫service類
1、接口注入:增加接口私有數據成員
2、接口注入方法:set方法目的:通過Spring實例化對象
4:applicationContext中裝配bean
<bean id="userDao" class="com.hp.dao.impl.UserDaoJDBCImpl" />
<bean id="userservice" class="com.hp.service.UserService">
<property name="userDao" ref="userDao" />
</bean>
注:property中的name名必須和service類中注入的接口實例名相同(實際上注入對象時,找尋的爲注入類中的set+name名首字母大寫的賦值方法進行注入的)property中的ref名字必須和上面裝配的bean的name相同
建議:三者命名統一
2:AOP面向切面編程
面向切面,即爲橫向上進行業務操作,將系統分解爲方面(aspect),關注的方向爲橫向
具體配置方式如下:
<!-- 定義切入點,即什麼位置執行通知 -->
<aop:config>
<aop:pointcut expression="execution(* com.aop.service..*.*(..))" id="testpointcut"/>
<!-- 定義切面時交由哪一個類進行操作 即對切入點統一操作 -->
<aop:aspect id="asp" ref="beforeAdvice">
<!-- before標識方法執行之前操作 -->
<aop:before pointcut-ref="testpointcut" method="doBefore" />
<aop:after pointcut-ref="testpointcut" method="doAfter"/>
</aop:aspect>
</aop:config>
以上即爲IOC和AOP具體的配置方式,一定要理解紅色標註的文字
注:筆者也是初入Spring,有關理解錯誤的地方,敬請各位指出以做進一步修改,大家共同進步