Spring Aop中几个概念。 java关于Spring中aop的一些基本概念的解说!!

spring\u7684aop\u662f\u4ec0\u4e48\u610f\u601d

\u5728AOP\u4e2d\u6709\u51e0\u4e2a\u6982\u5ff5\uff1a\u2014\u65b9\u9762\uff08Aspect\uff09\uff1a\u4e00\u4e2a\u5173\u6ce8\u70b9\u7684\u6a21\u5757\u5316\uff0c\u8fd9\u4e2a\u5173\u6ce8\u70b9\u5b9e\u73b0\u53ef\u80fd\u53e6\u5916\u6a2a\u5207\u591a\u4e2a\u5bf9\u8c61\u3002\u4e8b\u52a1\u7ba1\u7406\u662fJ2EE\u5e94\u7528\u4e2d\u4e00\u4e2a\u5f88\u597d\u7684\u6a2a\u5207\u5173\u6ce8\u70b9\u4f8b\u5b50\u3002\u65b9\u9762\u7528Spring\u7684Advisor\u6216\u62e6\u622a\u5668\u5b9e\u73b0\u3002\u2014\u8fde\u63a5\u70b9\uff08Joinpoint\uff09\uff1a\u7a0b\u5e8f\u6267\u884c\u8fc7\u7a0b\u4e2d\u660e\u786e\u7684\u70b9\uff0c\u5982\u65b9\u6cd5\u7684\u8c03\u7528\u6216\u7279\u5b9a\u7684\u5f02\u5e38\u88ab\u629b\u51fa\u3002\u2014\u901a\u77e5\uff08Advice\uff09\uff1a\u5728\u7279\u5b9a\u7684\u8fde\u63a5\u70b9\uff0cAOP\u6846\u67b6\u6267\u884c\u7684\u52a8\u4f5c\u3002\u5404\u79cd\u7c7b\u578b\u7684\u901a\u77e5\u5305\u62ec\u201caround\u201d\u3001\u201cbefore\u201d\u548c\u201cthrows\u201d\u901a\u77e5\u3002\u2014\u5207\u5165\u70b9\uff08Pointcut\uff09\uff1a\u6307\u5b9a\u4e00\u4e2a\u901a\u77e5\u5c06\u88ab\u5f15\u53d1\u7684\u4e00\u7cfb\u5217\u8fde\u63a5\u70b9\u7684\u96c6\u5408\u3002AOP\u6846\u67b6\u5fc5\u987b\u5141\u8bb8\u5f00\u53d1\u8005\u6307\u5b9a\u5207\u5165\u70b9\uff0c\u4f8b\u5982\uff0c\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\u3002\u6240\u4ee5\u201c\u201d\u5b9e\u9645\u4e0a\u662f\u5b9a\u4e49\u6a2a\u5207\u903b\u8f91\uff0c\u5c31\u662f\u5728\u8fde\u63a5\u70b9\u4e0a\u505a\u4ec0\u4e48\uff0c\u201c\u201d\u5219\u5b9a\u4e49\u4e86\u5728\u54ea\u4e9b\u8fde\u63a5\u70b9\u5e94\u7528\u4ec0\u4e48\u3002Spring\u8fd9\u6837\u505a\u7684\u597d\u5904\u5c31\u662f\u53ef\u4ee5\u8ba9\u591a\u4e2a\u6a2a\u5207\u903b\u8f91\uff08\u5373\u5b9a\u4e49\u7684\uff09\u591a\u6b21\u4f7f\u7528\uff0c\u63d0\u4f9b\u53ef\u91cd\u7528\u6027\u3002\u4f60\u540e\u9762\u7684\u4e24\u4e2a\u7c7b\u5b9e\u9645\u4e0a\u5c31\u662f\u5b9e\u73b0\u6a2a\u5207\u903b\u8f91\u7684\u4e0d\u540c\u65b9\u5f0f\uff0c\u4e00\u79cd\u9700\u8981\u5b9e\u73b0\u7279\u5b9a\u63a5\u53e3\uff0c\u4e00\u79cd\u4ee5POJO+Annotation\uff0c\u5728\u529f\u80fd\u4e0a\u6ca1\u6709\u592a\u5927\u5dee\u522b\uff0c\u53ea\u662f\u65b9\u5f0f\u4e0d\u540c\u3002

aop \u9762\u5411\u5207\u7247\uff0c\u6240\u8c13\u5207\u7247 \u5c31\u662f\u628a\u4e00\u4e2a\u4e1a\u52a1\u7ed9\u8bb2\u8ff0\u6e05\u695a
\u4e00\u5200\u4e0b\u6765 \u62ff\u6ce8\u518c\u6765\u4e1a\u52a1\u8bf4\u5427
1 \u6709\u4e2a\u6ce8\u518c\u7684action \u8fd9\u4e2aaction\u4f1a\u8c03\u7528\u4e00\u4e2aServices\u63a5\u53e3\uff0cservices\u63a5\u53e3\u4e2d\u4f1a\u6709\u4e00\u4e2a\u5b9e\u73b0\u6ce8\u518c\u4e1a\u52a1\u7684\u65b9\u6cd5\uff0c\u5f53\u7136 \u8fd9\u4e2a\u63a5\u53e3\u4e5f\u53ef\u4ee5\u5305\u51fd\u5176\u4ed6\u65b9\u6cd5 \u6bd4\u5982\u767b\u5f55\u4e1a\u52a1\u7684\u65b9\u6cd5\u3002\u8fd9\u65f6\u6211\u4eec\u770b\u8fc7\u53bb\u53ea\u662f\u6cbf\u7740\u4e00\u4e2a\u4e1a\u52a1\u6d41\u7a0b\u8d70\uff0c\u5373\u4e00\u4e2a\u4e1a\u52a1\u7684\u6a2a\u5207\u9762\uff0c\u518d\u5728services\u63a5\u53e3\u4e2d\u6ce8\u5165dao\u4e2d\u7684\u4e00\u4e2a\u6ce8\u518cdao\u65b9\u6cd5\uff0c\u518dservices\u63a5\u53e3\u7684\u5b9e\u73b0\u7c7b\u4e2d\u4f1a\u8c03\u7528dao\u4e2d\u7684\u65b9\u6cd5\uff0c\u5f53\u7136\u8fd9\u4e2adao\u4e2d\u4f1a\u6709\u767b\u5f55\u7684dao\u65b9\u6cd5\uff0c\u6211\u4eec\u53ea\u5173\u6ce8\u6ce8\u518c\u7684dao\u65b9\u6cd5\u3002
\u603b\u7684\u6765\u8bf4\u6ce8\u518c\u4e1a\u52a1\u6211\u4eec\u5173\u6ce8
\u6ce8\u518c\u7684action-services\u63a5\u53e3\u4e2d\u7684\u6ce8\u518c\u65b9\u6cd5-dao\u4e2d\u7684\u6ce8\u518c\u65b9\u6cd5
\u8fd9\u4e09\u8005\u662f\u4e00\u4e2a\u4e1a\u52a1\u6a2a\u5207\u9762 \uff0c\u662f\u5b8c\u6574\u7684\u4e1a\u52a1\u6d41\u3002\u5c31\u662f\u9762\u5411\u5207\u7247\u7f16\u7a0b

1.切面(aspect):要实现的交叉功能,是系统模块化的一个切面或领域。如日志记录。
2.连接点:应用程序执行过程中插入切面的地点,可以是方法调用,异常抛出,或者要修改的
字段。
3.通知:切面的实际实现,他通知系统新的行为。如在日志通知包含了实
现日志功能的代码,如向日志文件写日志。通知在连接点插入到应用系统中。
4.切入点:定义了通知应该应用在哪些连接点,通知可以应用到AOP框架支持的任何连接点。
5.引入:为类添加新方法和属性。
6.目标对象:被通知的对象。既可以是你编写的类也可以是第三方类。
7.代理:将通知应用到目标对象后创建的对象,应用系统的其他部分不用为了支持代理对象而
改变。
8.织入:将切面应用到目标对象从而创建一个新代理对象的过程。织入发生在目标
对象生命周期的多个点上:
编译期:切面在目标对象编译时织入.这需要一个特殊的编译器.
类装载期:切面在目标对象被载入JVM时织入.这需要一个特殊的类载入器.
运行期:切面在应用系统运行时织入.

扩展阅读:扫一扫题目出答案 ... spring aop理解 ... spring aop底层实现原理 ... spring aop用于哪些场景 ... spring aop ioc ... spring aop例子 ... spring aop执行原理 ... spring aop原理面试必备 ... spring aop的注解有哪些 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网