zoukankan      html  css  js  c++  java
  • SPRING IN ACTION 第4版笔记-第四章Aspect-oriented Spring-001-什么是AOP

    一、

    Aspect就是把会在应用中的不同地方重复出现的非业务功能的模块化,比如日志、事务、安全、缓存

    In software development, functions that span multiple points of an application are
    called cross-cutting concerns. Typically, these cross-cutting concerns are conceptually
    separate from (but often embedded directly within) the application’s business logic.
    Separating these cross-cutting concerns from the business logic is where aspect-
    oriented programming ( AOP ) goes to work.

    DI helps you decouple application objects from
    each other, AOP helps you decouple cross-cutting concerns from the objects they
    affect.
    Logging is a common example of the application of aspects, but it’s not the only
    thing aspects are good for. Throughout this book, you’ll see several practical applica-
    tions of aspects, including declarative transactions, security, and caching.

    aspects help to modularize cross-cutting concerns. In short, a cross-
    cutting concern can be described as any functionality that affects multiple points of an
    application. Security, for example, is a cross-cutting concern, in that many methods in
    an application can have security rules applied to them. Figure 4.1 gives a visual depic-
    tion of cross-cutting concerns.
    This figure represents a typical application that’s broken down into modules.
    Each module’s main concern is to provide services for its particular domain. But each
    module also requires similar ancillary functionality, such as security and transaction
    management.

    A common object-oriented technique
    for reusing common functionality is to
    apply inheritance or delegation. But inheri-
    tance can lead to a brittle object hierarchy
    if the same base class is used throughout an
    application, and delegation can be cumber-
    some because complicated calls to the dele-
    gate object may be required.
    Aspects offer an alternative to inheri-
    tance and delegation that can be cleaner in
    many circumstances. With AOP , you still
    define the common functionality in one
    place, but you can declaratively define how and where this functionality is applied
    without having to modify the class to which you’re applying the new feature. Cross-
    cutting concerns can now be modularized into special classes called aspects. This has
    two benefits. First, the logic for each concern is in one place, as opposed to being scat-
    tered all over the code base. Second, your service modules are cleaner because they
    only contain code for their primary concern (or core functionality), and secondary
    concerns have been moved to aspects.

  • 相关阅读:
    javascript js date ios手机浏览器出现 NAN的问题解决方法
    DWG TrueView 2022
    FloatingActionButton(悬浮按钮)使用学习<一>
    Android多线程编程<一>Android中启动子线程的方法
    Android多线程编程<二>Handler异步消息处理机制之Message
    Java:类的构造函数
    Java:类与对象概念
    APP免邀请码安装
    .NET4安装总进度一直不动的解决办法
    bitmap缩放时抗锯齿
  • 原文地址:https://www.cnblogs.com/shamgod/p/5238257.html
Copyright © 2011-2022 走看看