国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

JBOSSAOP學習筆記-AOP的優(yōu)點

2019-11-18 16:22:46
字體:
供稿:網(wǎng)友
學習筆記-AOP的優(yōu)點


面對方法編程并不是要取代面對對象編程,而是要提高它。AOP程序員一般來說都是90%使用OOP來解決問題
而10%是用AOP來解決OOP不能解決的問題。

橫切關(guān)注點(cross-cutting Concerns)
很多時候你發(fā)現(xiàn)你的類并不能十分清晰和明白的表到你所想表達的功能意義,因為你真正的代碼大多被其它代碼所包圍了。如果你想很好的擴展或集成你所想表達的功能意義,你最好就用方面的思想來考慮它了。

開發(fā)中的分層(layering Based on Deployment)
AOP另外一個很有用的地方就是可以用來為你的應用程序分層。很多時候你希望的一些特殊應用或類是可以很好的配置的,但同時也希望這些東西是不臃腫和可以擴展的。AOP提供了很好的途徑來分層這些復雜的東西。JBOSS AOP提供了xml配置的機制來配置每個方面的開發(fā)。最好的例子就是緩存服務(wù),它提供了不同的鎖機制。這些緩存鎖機制可以很好的織入你的內(nèi),而不影響你的類的代碼,這樣你的類就是很好的擴展性了。

透明性(transparency)
很多時候你都想把你的程序的焦點集中在商務(wù)應用和應用邏輯上,而不是關(guān)注于中間件的開發(fā)。AOP允許你透明的應用中間件而不再使你的代碼收到污染。一個很好的例子就是JBOSS AOP中的用戶認證上面。

異常處理
處理異常是AOP提供給我們另外一個很有用的東西。例如,SQLException異常包含了SQL語句的 異常信息或者數(shù)據(jù)庫的死鎖等信息,但這些信息卻使用不同錯誤代碼和信息。AOP可以讓你攔截SQL語句信息,并分類處理數(shù)據(jù)庫死鎖信息。

 public class InvalidSQlException extends SQLException
{
   InvalidSQLException(SQLException ex)
   {
       super(ex.getMessage(), ex.getSQLState(), ex.getErrorCode());
   }
}


使用的方面
public class SQLExceptionaspect
{
   public Object handleSqlException(Invocation invocation) throws Throwable
   {
      try
      {
         return invocation.invokeNext();
      }
      catch (SQLException ex)
      {
         if (isVendorInvalidSqlErrorCode(ex.getErrorCode())) throw new InvalidSQLException(ex);
         if (isVendorDeadlockErrorCode(ex.getErrorCode()) throw new SQLDeadlockException(ex);
         ... and so on ...
      }
   }
   ... impl of isVendor methods ...
}

使用的配置
<aspect class="SQLExceptionAspect" scope="PER_VM"/>
<bind pointcut="call(* $instanceof{java.sql.Statement}->execute*(..))">
   <advice name="handleSqlException" aspect="SQLExceptionAspect"/>
</bind>
進入討論組討論。

(出處:http://m.survivalescaperooms.com)



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 马边| 襄城县| 得荣县| 怀柔区| 新津县| 和静县| 长沙县| 古田县| 多伦县| 榆树市| 化隆| 万荣县| 长子县| 襄垣县| 赤水市| 石渠县| 商洛市| 广汉市| 东兴市| 合肥市| 鹰潭市| 秦安县| 泗水县| 石泉县| 格尔木市| 涿鹿县| 永安市| 德兴市| 泰来县| 庆元县| 平定县| 湟中县| 萨迦县| 永靖县| 远安县| 四平市| 蒙山县| 晴隆县| 平谷区| 墨竹工卡县| 沁水县|