İlkbaharda AOP'de {Advisor, Advice, Pointcut, Joinpoint} vardır
Bildiğiniz gibi aop'un temel amacı, kesişen endişe mantığını (Aspect) uygulama kodundan ayırmaktır, bunu İlkbaharda uygulamak için kullanıyoruz (Tavsiye / Danışman)
Pointcut, bu tavsiyeyi tam olarak uygulamak istediğimiz yeri filtrelemek için kullanılır, "tüm yöntemler insert ile başlar" gibi, böylece diğer yöntemler hariç tutulacaktır, bu yüzden Pointcut arayüzünde {ClassFilter ve MethodMatcher} var
Öyleyse Tavsiye, çapraz kesen mantık uygulamasıdır ve Danışman, tavsiye artı PointCut'dur, eğer sadece tavsiye kullanırsanız, yay onu danışmana eşler ve nokta kesimini DOĞRU yapar, yani hiçbir şeyi engellemeyin. Bu nedenle, sadece tavsiye kullandığınızda, onları filtrelemediğiniz için hedef sınıfın tüm yöntemlerine uygulanır.
Ancak Joinpoint, programdaki bir konumdur, Class nesnesine eriştiğinizde yansıma gibi düşünebilirsiniz ve ardından Method nesnesini elde edebilirsiniz, sonra bu sınıftaki herhangi bir yöntemi çağırabilirsiniz ve eğer isterseniz derleyici böyle çalışır. bu Joinpoint'i hayal edebilirsiniz.
Joinpoint, alan, kurucu veya yöntemle olabilir, ancak İlkbaharda yalnızca yöntemlerle birleştirme noktasına sahibiz, bu nedenle İlkbaharda (Before, After, Throws, Around) Joinpoint türlerine sahibiz, hepsi sınıftaki konumları ifade eder.
Bahsettiğim gibi, nokta kesmeden (filtresiz) tavsiye alabilirsiniz, o zaman tüm yöntemlere uygulanacaktır veya belirli yöntemlere uygulanacak olan [öneri + nokta] olan bir danışmanınız olabilir ancak olmadan tavsiye alamazsınız. birleştirme noktası gibi nokta kesimi gibi, onu belirtmeniz gerekir ve bu nedenle bahardaki tavsiye türleri birleştirme noktası ile tamamen aynıdır, bu nedenle bir tavsiye seçtiğinizde, hangi birleşme noktasını örtük olarak seçersiniz.
Özetlemek gerekirse, tavsiye, hedef sınıfa bakış açınız için uygulama mantığıdır, bu tavsiyede çağırmadan önce, çağırmadan sonra, fırlatmadan sonra veya çağırmadan sonra olduğu gibi bir birleşme noktası olmalıdır, ardından nokta kesimini kullanarak tam olarak uygulamak istediğiniz yere filtre uygulayabilirsiniz. yöntemleri filtreleyin veya nokta kesmesiz (filtre yok), böylece sınıfın tüm yöntemlerine uygulanacaktır.