当前位置: 首页 > news >正文

网站建设要注意一些什么网站建设上市

网站建设要注意一些什么,网站建设上市,宝安网站建设信科免费,dede免费模板教育网站AOP是一种面向切面编程思想#xff0c;也是面向对象设计#xff08;OOP#xff09;的一种延伸。 在Spring实现AOP有两种实现方式#xff0c;一种是采用JDK动态代理实现#xff0c;另外一种就是采用CGLIB代理实现#xff0c;Spring是如何实现的在上篇已经讲到了Spring Be…AOP是一种面向切面编程思想也是面向对象设计OOP的一种延伸。 在Spring实现AOP有两种实现方式一种是采用JDK动态代理实现另外一种就是采用CGLIB代理实现Spring是如何实现的在上篇已经讲到了Spring Bean的生命周期以及IOC源码解析 AOP可以做日志记录或者事务回滚在Spring的事务使用就是通过AOP进行事务的回滚的 JDK动态代理 这个是属于JDK提供的一种代理方式需提供接口才能使用主要用的类有两个1、Proxy这个主要是生成接口代理对象2、InvocationHandler反射射包下的一个接口Proxy生成的代理接口对象调用接口方法就会走InvocationHandler实现类的invoke() 方法 使用示例 //创建一个接口 public class UserDao {String getUserInfo(); } //实现一个InvocationHandler接口的实现类 public class MyInvocationHandler implements InvocationHandler {//需实现的方法//proxy 代表当前对象自己建议不要使用如果使用的话会反复的调用自己而调用自己会反复走当前invoke方法容易出现栈溢出//method 指调用的方法Method//args 调用方法的参数Overridepublic Object invoke(Object proxy, Method method, Object[] args){//....return null;}//获取接口代理对象public T T getProxy(CLassT cls){//第一个参数为类加载器这个可以默认使用当前的AppClassLoader即使用getClassLoader()方法接口//需创建代理对象的接口class数组//invocationHandler的实现类对象这里调用的是当前对象调用的时候就会走当前对象的invoke方法return (E) Proxy.newProxyInstance(cls.getClassLoader(), new Class?[] {cls},this);}}public static void main(Stirng[] args){UserDao dao new MyInvocationHandler().getProxy(UserDao.class);//这样就能获取到了UserDao接口的代理对象了 } 在Spring当中是采用 JdkDynamicAopProxy 这个类实现的可以去源码里看一下这个类继承了InvocationHandler CGLIB代理 这个代理就比较厉害了是通过ASM修改 .class字节码进行实现的并且不需要接口具体的组成结构可以去看一下大佬写的这篇CGLIB(Code Generation Library) 使用示例 /*** CGLIB 代理*/Enhancer enhancer new Enhancer();enhancer.setSuperclass(SpringTest06Service.class);enhancer.setCallback(new MethodInterceptor() {public Object intercept(Object arg0, Method arg1, Object[] arg2, MethodProxy arg3) throws Throwable {System.out.println(Thread.currentThread().getName()run start...);Object result arg3.invokeSuper(arg0, arg2);System.out.println(Thread.currentThread().getName()result:result);System.out.println(Thread.currentThread().getName()run end...);return result;}});service (SpringTest06Service) enhancer.create();System.out.println(service);String testAop service.testAop(aaaaaaaa, bbbbbbbbbbb);System.out.println(testAop); 在Spring里面实现的类是 ObjenesisCglibAopProxy  上面就是两种代理的实现方式但是在Spring里面是怎么使用的呢 Spring使用AOP 需引入Spring相关的AOP的包 dependencygroupIdorg.springframework/groupIdartifactIdspring-aspects/artifactIdversion5.1.12.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion5.1.12.RELEASE/version/dependency 在配置类上需开启AOP进行方法拦截EnableAspectJAutoProxy 启动AOP代理这个注解有两个参数 1、proxyTargetClass这个是指定使用JDK动态代理拦截false还是使用CGLIB进行拦截(true)默认为false 2、exposeProxy表示是否能够让AopContext访问默认为false就是不能访问。 源码是怎么解析可以自己去看这个注解通过使用Import注入了一个SmartInstantiationAwareBeanPostProcessor的实现类可以自己调试查看这里就不具体讲了有空就在聊聊吧 最后配置相对应的切面拦截类 Aspect Component public class AopConfig {private static final Log log LogFactory.getLog(AopConfig.class);//切点需指定到具体修饰符具体方法名以及具体参数类型这里表示所有修饰符com.test.SpringCoreTest.test06.service这个包下的所有类的所有方法并且参数为两个的类型为String的方法进行拦截Pointcut(execution(* com.test.SpringCoreTest.test06.service.*.*(String,String)))public void pointCut() {}//执行前位于Around环绕方法前的后面执行Before(value pointCut())public void before() {System.out.println(方法执行前 Before ....);}//执行后位于Around环绕方法后的后面执行After(value pointCut())public void after() {System.out.println(方法执行后 After ....);}//即将返回执行AfterReturning(value pointCut())public void afterReturning() {System.out.println(方法执行后返回 AfterReturning ....);}//抛出异常执行AfterThrowing(valuepointCut(),throwinge)public void afterThrowing(Exception e) {System.out.println(方法执行异常后返回 AfterThrowing ....);System.out.println(e);}//环绕方法能够拦截执行参数并且能够修改Around(value pointCut())public Object around(ProceedingJoinPoint joinPoint) throws Throwable {System.out.println(around方法执行前Around ....);Object obj joinPoint.proceed();System.out.println(around方法执行后Around ....);return obj;}} 配置好后调用拦截的方法就可以触发AOP拦截了。
http://www.yutouwan.com/news/197800/

相关文章:

  • 东莞网站优化哪家好wordpress相关推荐
  • 网站设计网站公司小程序开发需要多少钱
  • 怎样做免费抽皮肤的网站网站建设市场
  • 陕西的网站建设公司排名成都网站建设零一
  • 大连企业建站系统模板wordpress 安装平台
  • 建设银行网站适用浏览器wordpress 手机管理
  • 手机端网站建设备案深圳龙岗租房子多少钱一个月
  • 网站按钮代码做招聘网站的怎么让人注册简历
  • wordpress 做手机站您的网站对百度设置了ip封禁
  • 河南天丰建设工程有限公司网站paypal外贸门户网站
  • 做任务可以给钱的网站网站开发规划书
  • 学做网站 为了熊掌号网站建设合同 费用
  • 东道 网站建设小广告发布
  • 谁有网站推荐一下好在线网站建设诚信经营
  • 网站特效网大连建设工程信息网华宇凤凰城东侧市政管网配套工程
  • 承德市网站开发大连企业建设网站
  • 网站页面效果图怎么做唐山做企业网站的公司
  • 网站开发前台mip网站怎么做匹配
  • 建设网站沙井东营网站设计公司
  • 网站从服务器上下载文件怎么做百度联盟网站
  • 抖音代运营服务流程南宁7天优化网络科技公司
  • 网站开发项目挣钱吗主体负责人和网站负责人不能是同一个人
  • 网站全屏代码泰安市住房和城乡建设厅网站
  • 怎样自己做网站卖钱重庆招聘一般上什么网站
  • 求推荐好的网站建设平台怎么制作网页
  • 深圳哪里有做网站的网站开发实验结论
  • 网站建设费用明细报价把里面的dede和plugins这2个文件夹覆盖到你的网站根目录
  • 哈尔滨网站小程序制作湘潭专业seo优化推荐
  • 深圳网站建设网站运营最吸引人的汽车广告语
  • 双轨网站开发简述网站的建设流程