为什么需要AOP?

先来看一段代码:

package com.cn.spring.aop.helloworld;
//加减乘除的接口类
public interface ArithmeticCalculator {
int add(int i, int j);
int sub(int i, int j);
int mul(int i, int j);
int div(int i, int j);
}
package com.cn.spring.aop.helloworld;

//实现类
public class ArithmeticCalculatorImpl implements ArithmeticCalculator {
@Override
public int add(int i, int j) {
int result = i + j;
return result;
} @Override
public int sub(int i, int j) {
int result = i - j;
return result;
} @Override
public int mul(int i, int j) {
int result = i * j;
return result;
} @Override
public int div(int i, int j) {
int result = i / j;
return result;
}
}

现在问题来了:

现在需要在程序执行期间追踪正在发生的活动?

代码如下:

package com.cn.spring.aop.helloworld;

//实现类
public class ArithmeticCalculatorImpl implements ArithmeticCalculator {
@Override
public int add(int i, int j) {
System.out.println("The method add begins with[" + i + "," + j + "]");
int result = i + j;
System.out.println("The method add ends with[" + i + "," + j + "]");
return result;
} @Override
public int sub(int i, int j) {
System.out.println("The method sub begins with[" + i + "," + j + "]");
int result = i - j;
System.out.println("The method sub ends with[" + i + "," + j + "]");
return result;
} @Override
public int mul(int i, int j) {
System.out.println("The method mul begins with[" + i + "," + j + "]");
int result = i * j;
System.out.println("The method mul ends with[" + i + "," + j + "]");
return result;
} @Override
public int div(int i, int j) {
System.out.println("The method div begins with[" + i + "," + j + "]");
int result = i / j;
System.out.println("The method div ends with[" + i + "," + j + "]");
return result;
}
}

如果还希望计算器的加减乘除只能处理整数的运算呢,又需要在ArithmeticCalculatorImpl 实现类中添加代码进行验证,每添加一个需求,都要去添加类似的代码。

使得代码冗余且维护性低。

那如何用AOP来解决呢?

AOP是使用代理设计模式的原理:使用一个代理将对象包装起来,然后用该代理对象取代原始对象。任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYsAAAD1CAIAAAAu3U7ZAAAgAElEQVR4nO19+1MT2dZ2/qwMlPmkIgzIzRkYGByuOQLKzQAK0RMuXo5TIhfRQQRhABEP4AgyCMMkpe+Rl0JrxI9CaqBGPiwKjxSODGoBNUbK6u+HBW2bdHc63b13d5L11CpLOn1L995P9lp77WcZGAQCgdArDFrfAAKBQAgCGQqBQOgXyFAIBD9cH7afzC0/mVvuHXt8bWAC7HyHI+9cr5Cxu10bmOgafvRkbnlp5S+tv4d/AxkKgdghI8fDuWsDExVNw3nnek2WemNajVqWbu8E/hq4N/1kbnnt7abW39hvgAyFCFI8W3rVO/a4/OJgeG4jL62EZNSZcprDCjrMR7tZiyy7HWUbEjLunuai66ac5lDLJd6Tmyz11gu3uoYfzS681PpJ6BrIUIgggiArpdeacpr35rWxHBR/6p6KFn1yeIe/CrtMOc2hWY3IVhKBDIUIcLg+bN8dn7VeuOXGSqFZjWH57RGl/TEVo+rykRSLq3JElt02F3btOfSDJ1sN3Jve2Hqv9ZPTBZChEAGLhzPPz7SOciNKIZkNe/PaIkp6NWElX9mqomnY8XDO9WFb6wepJZChEIGGpZW/Lt64H13QxHb1PYd+CC++GWMf0ZyMpLDVl8du7T3cyt58eG7jmdbRJ3PLWj9XbYAMhQgQbGy97x17nFzWxvXjzEXX/YKYPC22ciyipJc7qoouaLp44/7K67daP2mqQIZC+D3W3m5e6XvAhplCMurCCjr2n1A52q2VxdhHzIVdIZkNLFWdaR0NnjQrZCiEH2Pl9dvzHQ420mTKaY4su605pxCyqPJBrvdXfnEwGOb+kKFkYm3q8ZunM1rfRfDi2dKrM62jbHfde7g1+uSw5iRCwWIqRsPy279Ir4UvnneuN7BDVMhQMvFufn4iNeV5T7fWNxJ0mF14WX5xEPrnF+m1YfntupqYo2OxlWPmwq6QjDo2Z/3hzHOt3wwRIEPJh2t9farUOnv29PYmLmKggY2t9+c7HGywyVzYFVs5pjlZaGhxVY591h42RGW9cCvw4ujIUEqx0NryKDd7Y3FR6xsJcAzcm4ZY+Bfpteai63FVDs0JQi9W7QwvvgnjKZOl/krfg0BKoUKGUgGrD/4znpS4+uA/Wt9IYGJ24WW6vXMnFp571U+zB0hbXJUjrKCDzUtwPJzT+r2pA2QodbD1YvlRbvZCa8tHl0vrewkcrL3dZMPhoZZLUeWDKnZphmF82i7xVDIOV9GiTw7vyb7CBtGfLb3S9g0qBzKUatje3Jw9e3qq1OpaX9f6XgIBA/em9+U0Qshpn7Unvtopm4kA0pmI/Ujo3qQwlMj5hc6sFk9FlPazwSl/d/qQoVTGUn/fRGrKu/l5rW/Ej7Gx9Z6drdub16ZKOJz5vP/Dn4wvwyihnYUYyvP/LHiJTOT8MiyuymEuug7P8NCpG/6b4YkMpT7ePJ0ZT0pcvjOo9Y34JWYXXsKSupCMOhXdOkYCifjEceLcJ3QII0xM0u9Euu0/MQQCVeG5jXfHZzV6pYqADEUEkIjw+/nvMSzlE64NTLDZ4WplEjACYxZfSUpoN0aAodgvJf4pF6ozVDxE0PPb2eUyfufxIUORwkeX64+my49ys7deBHLKr1pYef320Kkb0JH2WXtU7KIMh6HYf7kQpxVGdIzDPYPnaUXoTOQ/JCyitB/SEZLL2vwrfI4MRRYrTsdEasqfk5Na34iu4Xg4B7lOoVmNqq/4ZURDTuI8wktezOecwgiMkni5jD2coctQ8afuxdhHYJrPZKnvHXtM472qAWQo4thYXJy0ZCx2/qj1jegUXcOP2KA4iTxM7rXEOcgrQ3mlM69Ew/DxneftkbJqJxs+P9/hIPpa1YK/MtTa1OMVp388YoZhtjc3Zyrt07YyXB/jBnYVS0RJL+n+yQiHhFRkKHGS8mlnQhZZdhs8PuuFW/oPS/krQ20sLk6VWqdKrX603OR5T/ekJQMTEQCuD9uQUvBFei0FyRS4KC/jMEHGUPGn7kWfHIaEqXR7p85LY/krQwEgyrPQ2uIvY5M/JycnUlP+O3JX6xvRGBtb7yEuHpJRR1o1Ba4oxDUMH0Fw9+c9yivFCB3FvRlP0CSpmIpREPD8qrhFz7Fz/2YohmG2NzcXWlvGkxL9pdv/vbr6W2H+H02XgzYRYeX1W9DqDc1qpCmcwvjCUJ478+7pdTv3cKFr0SQmrsVVOUw5zZAtpVuRKb9nKMDWi+VpW9lUqdUvfKiPLtfv57//rTD/79VVre+FNp4tvdpf0GRMq9mTfYWyPgEj2cNi+ChMys6eH4l8qjlDxZ+6F1/t3JvXBhN8+kzpDBCGAqw++M9EasofTZd16PQZDO6P+r8jdydSU8SFOj2PYreLQ8Y55Z1ZyhYWSyt/QVbB3sOtstfZyeMmRti3Yj/lPcrrzrzHin/q021QMHaC78HUM5F70wSkGEq8G4jvqeTY7c3Nxc4fDQaDDp0+z7vlCnXyfmsRhvLpQtI/FdpH+p0I7bny+u0Ba4sxrSYsv12TfogmYuaj3TCS0ptWJxGG8umXVuQ/3J0l/oADtl4sGwwGcPpkjDJUgdfBCMC1vj5tKwOhTiW8IPSpxNvwen6JdyK029rbza+KW0DgSfPeiMZrLEnpKnCufkf1tRtw/+Vu5z2z0OG8O7NOHyuHQoGYhG5GfAc3oU6vT086Q8m4Gd59eLd43p7nfxiG2dh6DxJ0ptyrNJ07NF8NVvCF5zbqh6QI9ljxTiXSCaV0SymMxuw6fazSgG4ZiuVTN6FOiWSt4qdC+/Ae5cZHvO/L9WEb6GnPoR9Qulf/BiT1VXGLTiTP1eyxIqMnEdJx28j7I+zWAST2HxZbL5ZnKu2/FebrlqFgH0+hTj9iKCFYL9zyd3qKqRiNsg2FF980H+02H+3ee7jVlNPMa3sPt8I+kWW3/bU6VrXTlHsVSEoPyZyaxaGYz3nHk32EGIr91431PHuL2+F/Tk4aDIb5hjr6GphemZqFm1CnCEOJQ97OXvfkfbDi90k/70m5RdmGzEe7TblXWUVd2RZquWTKaTYf7Y4qH/QbD7faCXlS6fZOzZfFEIlD8f7pdTvb+g2fMw7vFp9uw+BBXj6dSjk8L8d7AwY+8hWnBomXI3HDXu8HlgSHZDb4BT3tPzG0z9pjyr1q3C2W+YllshpNOc3mouvmo90RJb1RtiEh+/LYLRhDmXKvQsa2m+3JvmI+2h1l03vF9rgqB9z/mdZRhW1JIdT38oT+FNrCex7GowOI91KJ/Qf+wzp91NI7fWIowJunMwaDQUioUzZDSSQvX29YiFuNaTU6740x9hFzYRer6s0OfMIKOiLLbiuXgomxj+yMyHKaP2Or9Nqw/HZ1a0Oo/GQqRmGBsbZSLQTn8rhbRHYT2t9rH2Y8eojQnry7wRK5389/T9rpk/JFhLYICXUqGUNJISmJDMV8/qvD/mft7eb+giaDwaCuFp2KFlfliCjp5Q5zgJW+PHaLYJXQamdU+aC5sIt73ZDMBnNhlz5LbEXZhiD/YHbhpdc2QwjEnR2JvUUKQ7GdwfMoGQzFMMxHl2ux88eJ1JSl/j5JX0YW5DEU/AlCnQaDwU2o0ycOEnpoEu/E6xXdzuz6sJ13rteYVmMwGDTvY54WYx9hVXFh6XJYQQf9qHZMxaj5aHdoViPXAaSg8eCrQZLUV8UtG1vvRZocOZBiKCkjKd6fX6E/RbqZSI8S75yAv1dXZyrtj3KzxRegyIPI0EP6nytOh8Fg4Ap1KmEoX29G/Iqez/nijfsQu9EbQ0WfHN57uJVlhL2HW788dkvzu9p/YiisoAP8KZj01BtPgX9qvXBLpMmRg8oM5UlMzOdMJHSI50ahnT13EOpRUoZaLNamHk9aMtR1+uSRgkEYrFCnyD5CPwwiD9nrwxTa7nYGz9vQvHeBRdmGYAYdAkDmwi6Crpw8g8rmu+EwXfFUbOUY3Ni1gQmh9kwOBL08Xrbi3YeR5uXxbpTSo6QwFMMwH12u5z3dajl9IjcmfhsiJ2SFOr0+VZFL8xKZ+IG8H/FugYXB4cU340/d0wNDxVaOseOmkIw689Fu3XET16qdEaX9rOu3J/uKTuJT+08MfZFea0yroS/SoiZDibd+3p3dtjDCv+dcLvM6cBC6JSm3xzp9a1N6VJvXs1AniNLpZ2HwPmsPeE/ATX6UMsotGmwuuq6HOw8vvmlMq4kuaKKcIUU8Uu6nAKdv9uxpHZY416dQ58C9aZiZ0kN32n9iiJ0vU6tqMW3jVD0IyWzQQ8gMAlIXb9yn2a6QoQQBTt94UuJSf5/e9DD1JtS59nYT/Ds9dCS2Y4daLuk54UiKsSWkILSvLfvH2EfA16O5rhgZygtc6+uzZ0/r0OnTlVBnRdOwHpRVYivHdvpzeu0+a4/frDLxZmw9ThL1BH0ySD5It3dSa1rIUJKwNvX4UW62Dp0+KUKdpPFw5jmUbNHWmYoqH9zpxpZL2nZjEhZTMcqSL0xEaGPVzlDLJZqJ5shQUvHR5Vrq79Oh08cV6qQP14dtkKbTsttwPDtCZUF1Yp++pnYeH5toTkeeBRnKN4DTN2nJ0JXTxxXqpHzpK30PIH9Hs35b7dzJJ0ivjSjt15xEiBNE+SBM82koaANJ+XRyOJGh5ACcvplKux5iQCzchDop4NnSqz2WemNajVZaSHFVDkjFDMlskH0PXr+m+LFSzu/T/l4ttnIMZiq1krWJrRwLzWqgU3kBGUomwOkD90o/Th8kIrgJdZIDFA02F3bR7yTxHIUQhR2VUcBB4p967sN4q23FfuoJt+8Oc/+hWY2a/DxAehSFkDkylCK41td/P/+9rpw+T6FOQni29ErDAHlMxSjkXit3dhjJHCTxyYifweuZ4/mIjOcmd91bCnWbeazaCc4m6WEUMpQKePN0RldO3/bm5u/nv2eFOglBwwFUXJUD6MmU06w8FsOQHEMxwsX1PI9lhIlJ6EIQEtKEpOgMo5ChVAM4fYudP+rE6Vu+MziRmkJofcza2809lnpNBlCsc2fKaVYl44nRgqHYJyn+KRdCl9ghKfpaplSGUchQagKcvonUFK5SioZ483RmIjVFSKhTCUBiRYMB1K7Ov4ozWQwxhoJnFc/HOOJnE/kPr0Fl89CsRso/GBSGUchQ6oN1+txk5zSBa31dSKhTNjQcQEHkRd2u6PX7ytuZ+TyiJE40bmdgfGQoEsQtycgPo5ChSEE/Th8IdT7KzVaLMbUaQJkLu0i4M4zi2Trph0u8Fu9jF7/QZ84vxZdCehiFDEUQrvX1+YY6nTh9UDFU+Z1oNYCKLLsNaZmqh4QZuQwlfqDQPj6dUMolWGMnEMxHu+m9GsLDKGQo4ng3P/9bYb4enL6NxcVJSwYr1CkPUGMqrKCDXh/g1B0hkTXOUIyUix/i0868tv/EEFTTolliB4ZR5RfVD3cyyFDUsHxncDwpcbHzR/oLU7iAiqEg1CnvDMllbca0GqpLc6udsGiWkDYe4wsHMQJxIqFT8Z5c5HD2/J7wiS9CMhuoDXJjK8e+SK81WepJ1ChGhqIH1umjlvMtBNlCnbMLL0E8gE7TB4PwU2hWI6EYMKOAoSTuL7Qbw6Eq3j3F703IYD6BZkAKrkhC8AAZijbA6Zu2lWnr9K1NPZYh1HmmddSYVkOzCh6spDem15IbtXn91p58wQiPlRhpDBUvzEoSDxcxtvZBREkvndcEUUIS8XJkKG2gB6fPV6FO14dtk6XemFZDL0Ze7YT5KaKcyMiKNHk+H7VOLvIKpH8pYPaQjDpqLws4UXX5TWQozbC9uflH02Vtnb6PLtd8Q51Eoc6747OUhTT3WXt2pF0CRS2TpkEa5968NjqXA+0q1VXMkaE0xrv5+alS67StjKZqihskCnVCKRdqSuSxlWP0p6UCySg/wBj7CIliMMhQusB/R+6OJyUutLZo5fR5FepcWvkLvAZqwxkIvuqntpU/GszrhVou0XlrMOWqbmIUMpRewDp9K06HVjcgItQJWprU0qCiygcph1EC03YDeXQ0miNK+41pNRVNwyo2S2QofQGcvqlSq1ZOn5BQZ7q9k6bDRbNfBbbBLFtIZgOFYVRclcOYVhOe26hig0SG0iMgMKSV0+cp1Lmx9R6m/Ok4C/tPDFHrVMFgNOkerqVi8XRkKJ1ie3NzobVFq9rCINTJJiI8mHpGMwMQIlA4gFLLaA6joKDetYEJtZoiMpSusbG4CE4fISE6EXCFOnfEDKisR40+OYwDKNWN2jAK8rDyzvWq1Q6RofwAK07HRGrKH02X6Tt9INRZePhf1Aq6wABKq+oMgWr0hlHVTlijt7H1XpUWiAzlHwCnbzwpkb7T9//+d3IoNu5Y0lEKHSmmYhQCXvqdwqt2RtmGIkr7zUe7zUe7wwo6TDnNrIXlt8P2iJLeKNuQrr4FDKMopLNBERq1cg6QofwJmjh9d8dnw787e/3rg1fTrUmVZJWwIYpBLQ1aosVWjn157Ja5sAs6uU8WarkUlt8eUdofYx/R9ltElPTSWRIAL1Gt5HJkKP8DaNFRc/pgtfD+4n83Wmw/JXyXdYJgXd9QyyVjWk1U+aC2nXnHqp0Rpf1wS1wz5TTDQMl8tDvKNuRm+6w98JEp9yqkdH9iq6zGfdYerQoFx1aOwW2QHtlBKCq5rE2V5ocM5ZfY3txc7PxxPCmRRJUEN3xV3GJMqwHh3eNFTcMHEoqtLSRa9qckAy06MNdiKkbNRddBMw8SR025V/dZe2Skg0WfHA4vvrk3rw0W1oIPG5bfrsmQCrTMicfLq51AzarIRSFD+TG2XixP28p+K8wn5/RBJlRIRh3b/g6V//vO18n1/7Cr3rLDCjo0j5HHVo7BgluwPdlXVAzcRJUPwjwAOxajKgS4m/O9J/sK6QvB8peHM8+Vt0BkKL8HOH3zDXUk6neCZJ1bm06qHG1LLez+NlvNsNSu3LUmNb7B9ll7dvyy9Nqw/HZCdxJTMWou7GIHaOai6/T8vt3RDekRHPzYqCJohwwVCCDn9A3cmxZajncu5/TwgYTDx9VJkoLgBWX1TtZi7CPwsw9rlWnMwVU7Qa4EHFtqoTc62bCwYlmVYDkyVOCAhNMHuZpCDbqopG34QII9r055m4YJIE1cPHboRJMpwNyYkUKSKszo7T3cSvQqsPDbeuGW8haIDBVoUNfps164JT65lnZyoO+bjKbMYwlVvypp05BEE1l2myZBxO8yI5CjVrNs+6w94PSZcq+SJinIOOMGFsldJbqgSXkLlMNQIMQR5HamdVT50yeEjy7XYuePE6kpS/19Ck8FlV3EwxYJVb82Wmx932SknRyQ2aZ34yOUOSIsvx2iTprnN8RUjEKpuz3ZV0g/BLgQ6SA9vFDlanZyGEpzdtCJKXz0pLH1Ynmm0v4oN9ureKYQXB+2oQNLaZH2vLrhAwlFJXKSLSEIRbVYbrUTIjIhGXXifZXxsQSL50ciO3MtpmIUcq9IVzYHXia9yhKyW5XLlstnKKJfT+fmFwwFACmV389/L8Ppe7b0CjqMxMdy+Hj3na+Tz+Wc9vV57gShKFbKhcygkMwGKRN2jGTS8XyGnhtFLsRWNieqigk5B6R/DyBpw/FwTlaz/QRkKDnmRwzFKHD6HA/njD6uQUmqHO3+NrsttdCnRATgC2quFnRRY3qtxEl3xsc6nfF8xal4D/E0trI5OTnTnVAU4cxYqIKhXIYFGUqO+RdDAWQ4fdcGJuQNbWqyq+58nXyo/N8S94c+SWedbUzFKIRIlNSSY7xVweOFxJPvlAgkSdkQmCfqS8LPgPJwLTKUHPNHhgL8OTk5acmYPXtaitMnm6HiT90rtrYMH0g4XtTkfedqp/Rol3KD2X2FC2gZX+JQXg/xNEiVIlfZHHxJosFy0HtBhtLG/JehGIb56HI97+keT0pc6u8Tr+Upngzl1bJO9P+U8F2jxSaeiACSddKjXUoMsoGkF2hgH0W85MGRxN282G4FBEIJYhAkIqrEAiNB5SlRyFByzK8ZCvD36io4fWtTgksTQNUgolS+mEFC1a9X0609yZaD9p+F9vny2C1fo12yTZ5GEuPL9JzQRyKH8BqUnyOkDQ9BInPRdXKPWi2xTWQoORYADAVYm3rs6fS9eToDtFXRNKzKL23VkZrhAwn5xzp5PwWPhsJE3id9YR8PZHxkKCH4el2YQFASLxMyCr8KwLCHTt1Q2ESRoeRYwDAUw+f0bSwuTqSmbG9u5p3rNapUgerw8e7hAwlVRz41m4P2nyHDE9JzlIzUJNqOdoLvVMhoMYaK3w3lkPB/gayJJhzAjOFXxS0K2ycylBwLJIYCuDl9fzRdXmhtUZGh4k/dO2j/uSfZwgp1FpW09X2TEb+7lpX4epfdtHUZsWdGozEUOb0HoA+isT9kKC0t8BgKsDb1+FFu9kyl/d38/HhSYlbJD0ZVlToSqn6t/4edFeqEjARYkUe6ViisZZU3hcfsRsrdtng9ROLOImYu7DKm1eyz9qj7NIA+QrMaiT5zY1qNyVKvsE0iQ8l89AHJUAzDfHS5lvr7xpMSJ1JT2pItxl11TRWNFeo8k3uu0WIjwVD5xzrdFgnCLJ68qTF4Mm5bhHbzCp8uDVlFqmdvQnFgCgylvJsgQ8l89Gnflk/byiTaQmvL855uifbm6YxE23qhWmVXhmHePJ1hb/hRbvb96Mj70ZFfpVSSSMk5VP7vnxK+u5pu/SXuwP/JrFedB20Fjb/EHTiTe45NdIDBiLzMCcbHpXaMBDqTaORWLFLoxchQmpkxrSbq4GnpVLJ8Z1AiPS12/iid+FgekWKPcrPFz/Z/jx97XJgHNtdQO9dQ25SSc/br7H8dqjqXc1rIqo7U5B/rlGhpJweupls7Dh45l3P6TO65O18n34+OtCaXkhipHbT/3JZa+FPCd7CYWd1olwjp+Epn4gblD0gMdpChAtn80cvbWFyUTqlAlzVZJf9MPCLOUI0WW/e32RJt+EDC/ejIe/sj70dH/k905P9ER96PjrofHcVLqdJP25ZaKHR7PcmW+9GRV9OtUZY6dWNq9Bpbei2J7oYMFcjmjwwlA+rO5QkZLMrzHENJH5odL2oSZ6jub7MT0/9FYqRGwWANHaE2TO62cS5PS0OGUtFAFEl17jhU/u+Og0dYL29HPoHwd1HdIKRNQocAGcqLMQqcc82vEiQMBateSNfRhrk8dVexnss5/UvcAW6CKKRrqpUX6vageLeoYjuLFtWuHwXhLaICLHDn6fZOhY1QyzEU+yKFLiTSJsR39ryEyBYZFlQMRTrbm0S2weHj3W4CVTsr0VRaW8N4pDt5blHFIK1c9eUpFPKhAmFdHsNhKKEXL/tPT6jYdIKEoUCQnsS6MK7BqhfS8nXqrkRjaDEUlHVSfYkvLJojWvtLrXIvuohDMWozFO92FdtNkDCUEn0o6UZnXR70yZCMOlWkAtweFO8WVQzEGFRfEkRBGN6/FezcXiTj8Y7j1WYooR3kGS9D/Tk5ub2pQqF6/QDKeZJmKNA2UH1hh6ftSAWQpEJG1Wb2SYxBbQGWHeeRZNU8/2Yot9fp+R/Pl+31riTuxt1Ztrkx1IrTMWnJmLaVBRhDydApl92Uw/LbiV4lnpUKUDvqLN5uldiOGAMBFScK+lBwiSt9DxQ2Qr0wFC+EGoHXP0k0F66xDMVyk+yKT3rGTq0XAl2aa/tPDFG4Svwp1aQCJD495XcLuZokcrh2ZjZJRhhBxvPu+KzCRqgXhhL5VMafIs1IlacPq14mLRn3oyPHkxKnbWXzDXXcxSvLdwbdsrRlvR2NsbH13ki+Pu1Oyg/hq4CBR6li/IUhM3qK3yURQo4YBT0J0IOfXXipsBHqiKG4l/B8317vynNn8fakxOAJvJuff5Sb/Sg3+8/JyRWng8tQfzRd5i55myq1ui3pmCq1cnf4o+ky9/AVp4PLbhuLizJekyqILmgykq/CAmnTFGq9xFSMwrWUB9d425hQw/PVYCKMHInAWJLoA4fnvLH1XmEL1J6h2JfKeBCW585e//Q8m8hRso318thSdCtOh0/P8N38vMjS4vmGOi5//VaY70Zwbot+Fzt/5B6++uA/akkg7KSVE04FgN9b0nW6wSDtwJheK/tybBuTvYO4xVaOAYOQihNVO0kPWiEjNLqgSXbDY6ExQzEcNmHUYCi3k3tClRfgFil/Nz8/VWr9/fz3Mh6mDHx0udxcyKX+Pi5DzZ49zeUv8EZZA7eUa276Cn9OTrJnbq5pD//uLJ2UKNlFZeRdTkldX89G5blFtsGc457sK4TKDkOqAVGBTYgtKhcpZzRnKO5/3F4w9zV7vnJGAkOJXFGh8WYbvJufl/Ew6WN7c5PLbmtTj90YaqbSzpLXrzlHhmLjuAQ3fCBBXFfAbVmvlOLDMJ1HdPKba2xdX1PuVXkswBDL2AT2lF4PWYbt1KAnU+cKDPQCz3f45ljwQl8Zm+KNQOQQrzuIbJRhQZKxyTDMw5nnxs/Fc9NODnAJqNja4sZQbtIojtgYLsH9lPAd99Or6dZzOaf/dajqn4lH7N/knck950ZwhLpQjH2EJSkZpXcZMgzF0hNRtxrC5ESF4WFGomv4kfIWqD1Deb5O9kJS3rfbzp7b3aDKPQcPQy2t/KXuEtOsE/28win2pIJ/Jh6pzXRXm3ILwPV9k8H9tCnzGJcc7Xl13JMfPi4WDo+pGAWS2nPoB19Jyu0p8W7xzaqdoLEXklFHVoABkhjSa4mWRIfv8mDqmfIWqD1D+aMFD0MxDGOy1BvTaog26HjJoajDx7u5HGTPqxOR0+v7JsON4HqSLdwd6iz/rPi2qOSbwlDLJTpxel6LrRyDcU1IRp3qZV3cDNJWia53id/V/Fpa+Ut580OGkmNBxVAwnUfOKTho/zmpcpROKMrNhaw6UnMu+9TxlFJ4oeai64SC0yIWXnwTJuZDMhtI0/uIKycAABIiSURBVFP8rl470ZVMIJwQntuoSvNDhpJjQcVQO+uHCQRW8491Xk233o+OzDrRD82atPfBb9VOiJsATZBOrWAtxj4CaRZAzRTSweJ3RzdEHUm1VuQBkKHkWFAx1JO5ZaOqWkJJlaP2vLqfEr6783UyxNGhIgu5IuBSLPrkMJcviPJUjH0kLL8dFrXQ5ERIAiAqXBev3noXADKUHAsqhnJ92A7P5ZcSl2FpJwccsTFX061FJW31/7D3fZMxfCABPoJcShoL9IRtn7UHiAMSpiJKetUd00WU9rM8CCNTmmPGnaXIJPMM4nezyVdev1Wl+SFDybGgYiiGYcovDhrV1i0ptrbc+Tq5qKStJ9mys7HaCY1b24ossZVj+6w94A2B4xmW3x5R0iv7rmIqRr88diusoAMyxSEibi66Trusw+7jJTonAIoxyuXJWSBDybFgY6jescdGVQVSsk70Dx9IOHy8+3hR09V0K7udnN6IDIssuw2OJ2shmQ17D7eGF9+Msg1F2Yb4hz/VTvg0oqQ3LL/9E9Ol1cAIMaK0n348Pn53Fo+ormb8ruiKWkEoBhlKngUbQ4EMi1qhqISqX39K+A7KHJzJPVeTXcV+BIES0tW6fbKYitGIkt69eW1uXMO1UMslEMPktZCMur2HW/dZeyhM1YkY5CiR1iOEtAnHwzm12h4ylBwLNoZidkUOVHFMmjKPtaUWwv+LrS1uieOEdG9VMfDXzIVdppxmU04zN6L0aZR06Af4NKygQ4lvqK6B86XWGxS0aucX6bVGNSQNWCBDybEgZCio+6J8ca+toPGnhO9g8o7XdpQwSa5rDUKDARTpdDN4d8orUHGBDCXHgpChHkw9Ux7FOHy8+5e4A1knvETcIaKsz2GUPxo7gCLtZgIPqrIcjwUylBwLQoZyfdgGR0/2TFBS5eidr5NtBd5jTFCCCYdRahmdAVRs5Ri4eGtv1VTrR4aSY0HIUMxu+bywgg55D60ttbDRYpO0866gOA6jlBu1ART8rpRfHFS31SFDybHgZKgdnQNZJeeqjtT0JFtEwk+8zX3PoR80mZgPJKMzgIrfneJQRc+AC2QoORacDMUwzKFTN2SkbuYf6xw+kJB2csCHo6qdoZZLqsTmg9l29M7Ta0lnh8JILbqgyfVhW90mhwwlx4KWoaDGp0/aHQftPw8fSCi2tvj6kNneRWdJbQDaLstTqJYKqbYXb9xXvcnJZyg01V+G/rGx9R7koqT/Jnd/m13/D7u8dg9rUEmXFA1UA7VfJXLsUm13Pc2zpVeqNzk5DAVD/SA3FVce+RcqmoaNklOTQRRYdtOPrRyDpk9WdjIQLaZiFJZAU3h0sORb3TQoFnIYChHMAOXykMwGr7/MxdaW4QMJB+0/K2n9EDIPzWrUQDfKnw1Wn1CoNR+/GyMfuDdNor0hQyF8Rrq90+gthp12cuCXuAOqlEKAzkatEkwAGPh3IZkNFEJ4kEdOIkYOQIZC+AzILxcZRiVU/dqTbDmTe06VPsBWuFRX/iVQDcrhUXONYQDVO/aYUGNDhkLIgfgwqv4fdnZtsDq9jp0118dCXN3ap3rFhDUMwEgPoBhkKIQ8iAyjjhc13fk6WUohT58MSgDQmJnyZ4P8TNKlXFgjPYBikKEQssE7jMo60f9L3AHxQnUyrdoJaieyCwUHvAGJ0wk/xVMZQDHIUAjZ8BxGcaXpSBhbgxMzpDwNouPG9FpqOnkwgFJXycATyFAI+XAbRjVlHmvKPEa0V8RUjEKGlOwFzAFpUACKdDl1ru1UBrXUq6tk4AlkKIR8sMOo2MqxqiM14tJ0aln0yWEgKTrBYP0bkIUxrebLY7coXbTaCQMoEstc3IAMhVAE64VbxrSatEMXpEjTqWVR5YOQME1hxZnOLbLsNjwKmnUGoVwC6QgUABkKoQgrr99GZNXcjjtQfKSOZs9kSYp09Tc9245zR3c4ySrVqS60wgtkKIRSjBYUn03Ioa/lxJJUWH57EM7uwUCG8ugpfjehQXWlOiEgQyEUYam/73HJ0ayT7Zr4XGxMKthSECCxwJheSy/2dOpePMUAOQtkKIR8vHk6M56U+Pfq6uzCS2NazRfkldI8LcY+AikIe7KvBEPGeVyVA0YxNGfudmxXnZloiqYbkKEQMuFaX59ITflzchL+PN/h2BnLUO+0MRWjINUWklFHeUxB2fafGAI6DslsoF8fFAZuhFRWhIAMhZCJaVvZ855u9s+Nrff7C5o0W99b7QzLb4e4TKCGpdjAkymnmb7u6P4TQxAgJyFTJwJkKIQcLLS2TNvK3DY6Hs7t+HoaeVsRpf0Qlgq1XNK2BLm6Fls5Zsq9CvSkSYJFXJUDxm5X+h5QbmnIUAif8efk5ERqimt93fOjizfua7u+N8Y+AsmEkIgQALp3+6w9QLshmQ2yixUqNODHQ6duUEiAcgMyFMI3/L26Op6U+ObpDO+nrg/bIBKtpeBctdNcdB1IKiSzwX8jU/tPDEF8DVxXrdgWVvxFFzRRm7/jAhkK4QM+ulxTpdblO2K5MCuv30JASttCUjH2EdBCgPi9fzl9sZVjbFgt1HJJQ5l2Vg/vydwytWbGBTIUwgf80XR59uxpr7s9mVuGgJRWXglrbGQKhnX656nYyjFzYRdkohrTa/dZezSM+sdUjIZm0U4vcAMyFEIqVpyOSUvG9qakof61gQmaWkUiFlfl+NTn02r2Hm7VZ+WYmIpRdtwEbh395LLPbFeQi1r6OC+QoRCSsPVieTwp8d38vPRDyi8O7ug96mDu/7OxSVqNKac5orRfDzcWf+peVPmgvrjp1L343eyn5LK2ja335NqVVyBDIbzjo8v1KDd7xenw6aiNrfdfFbfoqkyLG08Z02vD8ttpZ2bvWvTJ4bCCDsjS1hU3xe9Gx02W+qWVvwg1KolAhkJ4x+zZ0/MNdTIOZKPmdAq3SbTYyrHw4ptsUgJ4o+bCrsiy2xTmy6LKB81F19lJOqgGaC66rhNuit+tUWiy1D+cea56W/IVyFAIL1i+M/goN/ujyyXv8GdLr8JzG41pNeai65r3PTeLsY+Yi65DLiJre7KvmIuuqxur2n9iaJ+1h8263KHFjLqw/Ha9BcVYRRc90BODDIUQx7v5+fGkxK0Ximaany29Mlnq9ayKGX1y2Hy0G0qHci00q9GU02wu7DIf7Y6yDUXZhryOdOKqHFG2oYjSfvPRblPuVe5Ijc0eCCvo+PLYLZ1Ewbi2U/Urrebu+KxaTUghkKEQgtje3Jy0ZLBrg5Xg4cxzICnKYkY+W7UTvDA2l0oVC81qDMtvjyjt13xmU5yeYOWdhrkFnkCGQghiptK+0Nqi1tlA1FyzpcWyLKZiNMo2FF5801x03ZTTbMppdnMJ3S29FnYLK+gwH+2OKh/UfwYWWPTJYaCnawMTar1xVYAMheDH857uqVKr7PATL+6Oz/odSQWDRdmGQjPrjFQqI/gKZCgED1hpOtXPzJKUbmNSwWZfHrsFo6czraOqv27lQIZCuAOk6YTWBiuH4+EcxKR0lYIQnAaJBTp07lggQyE+A6wN5krTkcCTuWVIQQg2fXFd2Y7YuZ5m7jyBDIX4DLzSdCTwbOkVZJzvOfRDAKg4+ZlVO/fmteknLVMEyFCITxCRpiOBlddvoa56aFajfjKqA97iqhyQ+RWe20hZ0lcGkKEQO/h7dXUiNcWntcHKsbH1Pu9cLyRYa7U+Lqgs+uQwLLj5qrhl5fVbmu9aHpChEAzDMB9drt8K88Wl6QjB9WEbVBCMUEAYw1LELLz4JkzbHTp1Q1vFAulAhkIwDMPMN9RJkaYjh4F70zDBt+fQD8FQ9o6yxVU52FWB9KshKAEyFMI3aTpyWFr5K7msDcQ5MaVTRYuyDYFUZnRBk1ZivrKBDBXsAGk6hWuD1YLrwzZUBjWm1ezNa8M5PuXGFpWwXrjlL54dF8hQQY3tzU0Z0nSk8WDqGWRLhWY1YvhctrG1JEyW+q7hR1q/VZlAhgpqyJamI42V12+hqhVkdWIugk+2I82eVgMyvrMLL7V+n/KBDBW8UChNRwG9Y49hMPVFeq256DpO80mxiJJeiDqZLPVX+h7Qr8GpLpChghTv5ucnUlNIrA1WF2tvN9nIVEhmQ2TZbc0pQLe2/8QQK5hnvXDLL9KdvAIZKhjhWl9XS5qODmYXXn5y+nKaMR3BzWIrx2AVC6Ri6nwhi09AhgpGTNvKVJSmo4a747PRBU1sWRR/EYcjzU3mwi7IwzRZ6q8NTPi7W+cGZKigAwlpOmrY2Hp/pe8B5HZCEF1vlQiomVsF0PKLg2tvNc5oIwFkqODCm6czNNcGE8La282LN+6zPLUn+0pQxaeiTw7vPdzKctOZ1lHNq9qRAzJUEAHWBpOTpqOMja331wYmYLIPkqcCPhM9yjbEFqQxWeov3rgfGOFwESBDBQvoSNPRh+vDdu/YYzY+pc8idArNra5feG7jtYGJgPTpPIEMFbAwGD57uRKl6dyO4m4Xh4xziuzg9RC33Vwftu+Oz4IkHjukMhdd9+tZv5iK0fDim9zqxF8Vt/SOPfbHxSuygQwVyGA78J+Tk55rg3lZQIShpFxIxqe8O/jKUCyeLb26eOM+O6SCCprhxTf1XKjOzWIrxyJKerkF+8JzG8+0jvrdol9VgAwVOPA6zPEc7EinBukc5OttsP/3urNPZ34yt3ymdZSNUoGui7mwK7Lsth4XJAtUEq1oGnY8nJP0+gMUyFCBCbajfnS5HuVme5Wmk8FlqnzKZR/pJ/RptwdTzyqahtmJP12xVZRtiLe+cd653oF700HlzQkBGSowwXZdIWk6ob7t63aFn8ojRF93A8wuvOwafmS9cMuTrdgSwURD7DH2kSjb0D5rD1QwdmOldHvnxRv3H0w9Q2LiAhkqMAFdd8XpEFkbzNu9KTOU2w5ShnJSXDyvEGIrdkLQlNMclt9uPtodWXY7yjbEmvjq5djKMe7OLBlxo93ISj4BGSowIbv3ijCUdGrwdWefvpf0PyViduHl3fHZawMT5RcHoawDIUu3d+ad6702MNE79vjJ3DKykhQgQwUmDAbDpCWDK03H23thoxQqEe/88qhBxoEkGMoTG1vvn8wtc2mLNd4xF2uHTt3g7sySUcDnVZIDMlRgwmAwuEnTiTCU+D5eP1J4IJcN1R2dIQIA+EYDEAaDwXNtsGfvlbJFykcKP5V3Syyj+XR+hN8BX22g4c3TGYPB4ClN57Xzi/t0PnGQG3EoGamJD/2ELoEIGOB7DSi41tcNBgOvNJ2vERyfQjziDCVlf6FDxLdIj5Qh/BT4UgMKBoNBSJpOfMTkNawjPQAkMq7hHft4vYrbp+JfCnkqwICvM3BgMBh41wbL7rfSRyhCn4rQjcTzyLsuImCALzhAsDb1OACk6RAINyBDBQL+Xl0dT0oMGGk6BIIFMpTfI1Cl6RAIBhkqALDQ2sK7NhiBCAAgQ/k3Vh/8x1OaDoEIGCBD+TG2XiyPJyW+m5/X+kYQCFJAhvJXSJSmQyD8GshQ/or5hrrfz3+v9V0gEGSBDOWX+O/IXRFpOgQiYIAM5X94Nz8/npS49SIYK38ggg3IUH6G7c1NN2k6BCKAgQzlZ5g9e1pobTACEXhAhvInLPX3eUrTIRABDGQov8GbpzPjSYme0nQIRAADGco/4Fpfn0hN4ZWmQyACGMhQ/oFpW9li549a3wUCQRvIUH6Axc4feaXpEIiABzKU3vHn5CRK0yGCFshQugZK0yGCHMhQ+gVI0+HaYEQwAxlKv/ij6TJK0yGCHMhQOsWK04HSdAgEMpQegdJ0CAQAGUp3AGm6/47c1fpGEAjtgQylO/x+/vv5hjqt7wKB0AWQofSF5TuDKE2HQLBAhtIRUJoOgXADMpReANJ0uDYYgeACGUovQGk6BMITyFC6wPOebpSmQyA8gQylPVCaDoEQAjKUxgBpurWpx1rfCAKhRyBDaYmPLte0rex5T7fWN4JA6BTIUFpiobUFpekQCBEgQ2kGlKZDILwCGUob/L26OpGagmuDEQhxIENpAJSmQyAkAhlKA8w31KE0HQIhBchQtIHSdAiEdCBDUQVI020sLmp9IwiEfwAZih62Nzcf5WavOB1a3wgC4TdAhqKHP5ouozQdAuETkKHoYXtzE9cGIxA+ARkKgUDoF8hQCARCv0CGQiAQ+gUyFAKB0C/+P3RlMrbMs4IFAAAAAElFTkSuQmCC" alt="" />

先来看下代理是如何来实现的:

package com.cn.spring.aop.helloworld;
//加减乘除的接口类
public interface ArithmeticCalculator {
int add(int i, int j);
int sub(int i, int j);
int mul(int i, int j);
int div(int i, int j);
}
package com.cn.spring.aop.helloworld;

//实现类
public class ArithmeticCalculatorImpl implements ArithmeticCalculator {
@Override
public int add(int i, int j) {
int result = i + j;
return result;
} @Override
public int sub(int i, int j) {
int result = i - j;
return result;
} @Override
public int mul(int i, int j) {
int result = i * j;
return result;
} @Override
public int div(int i, int j) {
int result = i / j;
return result;
}
}
package com.cn.spring.aop.helloworld;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Arrays; public class ArithmeticCalculatorLoggingProxy {
//要代理的对象
private ArithmeticCalculator target; public ArithmeticCalculatorLoggingProxy(ArithmeticCalculator target) {
this.target = target;
} public ArithmeticCalculator getLoggingProxy() {
ArithmeticCalculator proxy = null; //代理对象由哪一个类加载器负责加载
ClassLoader loader = target.getClass().getClassLoader();
//代理对象的类型,即其中有哪些方法
Class[] interfaces = new Class[]{ArithmeticCalculator.class}; InvocationHandler handler = new InvocationHandler() {
/**
*
* @param proxy 正在返回的那个代理对象,一般情况下,在invoke方法中都不使用该对象
* @param method 正在被调用的方法
* @param args 调用方法时,传入的参数
* @return
* @throws Throwable
*/
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
System.out.println("The methed " + methodName + "begins with " + Arrays.asList(args));
Object result = method.invoke(target, args);
System.out.println("The methed " + methodName + "end with " + Arrays.asList(args));
return result;
}
};
proxy = (ArithmeticCalculator) Proxy.newProxyInstance(loader, interfaces, handler);
return proxy;
}
}
package com.cn.spring.aop.helloworld;

/**
* Created by jecyhw on 2015/6/20.
*/
public class Main {
public static void main(String[] args) {
ArithmeticCalculator target = new ArithmeticCalculatorImpl();
ArithmeticCalculator proxy = new ArithmeticCalculatorLoggingProxy(target).getLoggingProxy(); int result = proxy.add(1, 2);
System.out.println("-->" + result); result = proxy.sub(1, 2);
System.out.println("-->" + result); result = proxy.mul(1, 2);
System.out.println("-->" + result); result = proxy.div(1, 2);
System.out.println("-->" + result);
}
}

aaarticlea/png;base64,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" alt="" />

Spring AOP基础:

  • AOP(Aspect-Oriented Programming 面向切面编程)是一种新的方法论,是对传统OOP(Object-Oriented Programming 面向对象编程)的补充
  • AOP的主要编程对象是切面(aspect),而切面模块化横切关注点
  • 在应用AOP编程时,仍然需要定义公共功能,但可以明确的定义这个功能在哪里,以什么方式应用,并且不必修改受影响的类。这样一来横切关注点就被模块化到特殊的对象(切面)里。
  • AOP的好处:每个事物逻辑位于一个位置,代码不分散,便于维护和升级;业务模块更简洁,只包含核心业务代码。

aaarticlea/png;base64,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ULxmbv6PN17/w6nLRy+2/uHUhb/707EBT3q7oM0n8+bZzTOd9pe+uPpvb506axxqGlmezwgbBXWzqP1fN5+BYRFeNLp++faHP3v+5Wc/+PzN726/cvbaB5eaB9dDd6Pp84be8ze7jp04+/xLx1545b2X3/362JXeu0k1KKjT0dRv3j393PHTH1xuOfLl5V+98+nxW8YtEW4y5d4Nf8PA6NFvrzx38rOj391unlyxe3c2GH2pqK/saf+XMn/iAfM5bYuRJmPpX732wb+99M7fv/j20QuNJ75rf+30tfNdrpUU2zay+E1z99tfXfrNGx/8x4tv/vur773+9bU7E6tuRt2iK62uqf/5ny+9dvrie1ea/u3IiT+eutCz5PexcDkj3R6cvtoz8NzxL1794vJ505BlJTSzy60U9VVGX2fr/N8zfykrNLjGfva7P//TH9/+5ZGT7175qDnmAAAgAElEQVRpffPCreNX2/s3sJlArKHLeqHhzstHP3n2xbd+/erHv37t1Bfdk64dbluoutbX/nTqs39+/cR71+4c//bG//jtS59bJoeI6hwlubZC39lGTtxs/9kfjrx7q/tbx7QDI+Zpbb4IZll9ltVmWXmWlRf4pzTf7XYnEomf+tX+QfNjXHU4Sjui9ASHJopwtQBW8vp8UVvmgWs7cbqh+88fn3/z7M0jX3338VfXPj3TcN7QPxnN3hycPtHQ/vInZ//1P195+dhnz7354c9fOHJndnspX/UXijeNHcfPXe5ewKbiVMfd1X9/56Mhf2aTVu/GcNPs6tdtllc+vfTal9cuu+YuuebGksxiXlkuastFvcYSo9/l0ByHelcDW1Q9GheEej1jP2A+ZBSwGUkMR+gxUp3j0BwD5xiwyIBVAfgF5Xx339EzF187dfqtby69c+nWy19efOfbhkF3dMgf/rip9f1zN59/4+Nf/fn479868YtX33vh9K3ZrLzNl0ajiZe/vvqtZfRunHRuBr5ot753275QgBsFuX872jxy98jZK3/84ttTd/q+G1xoXwqvMHAuD5ZZuMTAxWKdubw2kuYN++Y/wGPNh1ADYlluXguN5qtzLFxg0RwL5jiwwGorBXkyQb/w+sefX2h54ZOLR691Hr/S+cbphouGkcVY8ZZt6uPLTS++99lvX33vlXc+feZPx59998uGgfkNRlulKi3OyVc/OdO3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" alt="" />

  • 切面(Aspect):横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象
  • 通知(Advice):切面必须要完成的工作
  • 目标(Target):被通知的对象
  • 代理(Proxy):向目标对象应用通知之后创建的对象
  • 连接点(Joinpoint):程序执行的某个特定位置:如类某个方法调用前、调用后、方法抛出异常后等,连接点由两个信息确定:方法表示的程序执行点;相对点表示的方位,例如ArithmeticCalculator#add()方法执行前的连接点,执行点为 ArithmeticCalculator#add();方法为该方法执行前的位置
  • 切点(pointcut):每个类都拥有多个连接点:例如ArithmeticCalculator的所有方法实际上都是连接点,即连接点是程序类中客观存在的事物。AOP通过切点定位到特定的连接点。类比:连接点相当于数据库中的记录,切点相当于查询条件。切点和连接点不是一对一的关系,一个切点匹配多个连接点,切点通过org.springframework.aop.Pointcut接口进行描述,它使用类和方法作为连接点的查询条件。

15Spring AOP基础的更多相关文章

  1. [Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.

    前言: 在上一篇中: [Spring框架]Spring AOP基础入门总结一. 中 我们已经知道了一个Spring AOP程序是如何开发的, 在这里呢我们将基于AspectJ来进行AOP 的总结和学习 ...

  2. [Spring框架]Spring AOP基础入门总结一.

    前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect ...

  3. CgLib动态代理学习【Spring AOP基础之一】

    如果不了解JDK中proxy动态代理机制的可以先查看上篇文章的内容:Java动态代理学习[Spring AOP基础之一] 由于Java动态代理Proxy.newProxyInstance()的时候会发 ...

  4. Spring笔记:AOP基础

    Spring笔记:AOP基础 AOP 引入AOP 面向对象的开发过程中,我们对软件开发进行抽象.分割成各个模块或对象.例如,我们对API抽象成三个模块,Controller.Service.Comma ...

  5. (spring-第19回【AOP基础篇】)基于AspectJ和Schema的AOP

    基于AspectJ就是基于@AspectJ注解,基于Schema就是全部依靠配置文件.那么首先要了解Java注解. Java注解初探 在JDK5.0中,我们可以自定义标签,并通过Java语言的反射机制 ...

  6. (spring-第16回【AOP基础篇】)基本概念

    AOP(Aspect Oriented Programing),面向切面方程.介绍具体定义前,先看一个例子: package com.baobaotao.concept; public class F ...

  7. 开涛spring3(6.1) - AOP 之 6.1 AOP基础

    6.1.1  AOP是什么 考虑这样一个问题:需要对系统中的某些业务做日志记录,比如支付系统中的支付业务需要记录支付相关日志,对于支付系统可能相当复杂,比如可能有自己的支付系统,也可能引入第三方支付平 ...

  8. Aop 基础

    基础文献 https://blog.csdn.net/abcd898989/article/details/50809321 简单Demo配置 pom.xml <!-- AOP --> & ...

  9. 【AOP】Spring AOP基础 + 实践 完整记录

    Spring AOP的基础概念 ============================================================= AOP(Aspect-Oriented Pr ...

随机推荐

  1. poj 3281 Dining (最大网络流)

    题目链接: http://poj.org/problem?id=3281 题目大意: 有n头牛,f种食物,d种饮料,第i头牛喜欢fi种食物和di种饮料,每种食物或者饮料被一头牛选中后,就不能被其他的牛 ...

  2. poj 3253 Fence Repair (水哈夫曼树)

    题目链接: http://poj.org/problem?id=3253 题目大意: 有一根木棍,需要截成n节,每节都有固定的长度,一根长度为x的木棒结成两段,需要花费为x,问截成需要的状态需要最小的 ...

  3. poj 3295 Tautology 伪递归

    题目链接: http://poj.org/problem?id=3295 题目描述: 给一个字符串,字符串所表示的表达式中p, q, r, s, t表示变量,取值可以为1或0.K, A, N, C, ...

  4. Kruskal HDOJ 4313 Matrix

    题目传送门 题意:如何花最小的代价使得一棵树划分开且不含同类节点 分析:当一条边连接的左右集合同类点小于等于1,那么不用删除,将两个集合合并,要求最小代价,那么贪心思想将权值降序排序,删除后剩下的就是 ...

  5. IOS应用开发版本控制工具之Versions使用,iosversions

    Versions版本控制工具破解版(Versions.zip)下载请见本博文附件.下载后在MAC安装完以后,图标是莲花状.见下图: 双击运行如下图:    点击Repository,连接SVN服务器R ...

  6. Pycharm+Django+Python+MySQL开发 后台管理数据库

    Django框架十分简单易用,适合搭建个人博客网站.网上有很多教程,大多是关于命令行操作Django,这里分享一些用最新工具进行Django开发过程,主要是PyCharm太强大,不用有点可惜. 第一次 ...

  7. 安卓(Android)关于 RecyclerView 不能填充满宽度

    RecyclerView 不能填充满屏幕宽度 RecyclerView 的 Adapter 在使用是,一定要 @Overridepublic RecyclerView.ViewHolder onCre ...

  8. DeltaFish 选题报告总结

    选题结果:校园物资流动系统 报告地点:3A101 会议时间:16:00 ~ 18:00 与会人员:软工小组全体成员 请假人员:无  缺席人员:无 报告人:陈志锴 一.报告内容总结 1.产品功能 针对校 ...

  9. php查询快递信息

    $code = 'shunfeng'; $invoice = '952255884068'; $test = getExpressDelivery($code,$invoice); function ...

  10. iOS---设置控件的内容模式

    容易混淆的内容摆放属性: 1. textAligment : 文字的水平方向的对齐方式 取值 NSTextAlignmentLeft = 0, // 左对齐 NSTextAlignmentCenter ...