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

有哪些用flex做的网站苏州网页制作培训班

有哪些用flex做的网站,苏州网页制作培训班,常州制作公司网站,宁波seo排名方案优化公司#x1f600;前言 手动实现 Spring 底层机制的第2篇 实现了任务阶段一编写自己 Spring 容器-准备篇【2】 #x1f3e0;个人主页#xff1a;尘觉主页 #x1f9d1;个人简介#xff1a;大家好#xff0c;我是尘觉#xff0c;希望我的文章可以帮助到大家#xff0c;您的… 前言 手动实现 Spring 底层机制的第2篇 实现了任务阶段一编写自己 Spring 容器-准备篇【2】 个人主页尘觉主页 个人简介大家好我是尘觉希望我的文章可以帮助到大家您的满意是我的动力 在csdn获奖荣誉: csdn城市之星2名 ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ Java全栈群星计划top前5 ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣  端午大礼包获得者 欢迎大家这里是CSDN我总结知识的地方欢迎来到我的博客感谢大家的观看 如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦 文章目录 手动实现 Spring 底层机制 实现任务阶段一编写自己 Spring 容器-准备篇【2】创建SmartAnimalable接口创建SmartDog类创建SmartAnimalAspect切面类修改类beans.xml创建AppMain类输出结果 简单分析AOP 和 BeanPostProces关系看一下 AnnotationAwareAspectJAutoProxyCreator 的类图分析总结 手动实现 Spring 底层机制 实现任务阶段一编写自己 Spring 容器-准备篇【2】 创建SmartAnimalable接口 public interface SmartAnimalable {float getSum(float i, float j);float getSub(float i, float j); }创建SmartDog类 Component public class SmartDog implements SmartAnimalable {public float getSum(float i, float j) {float res i j;System.out.println(SmartDog-getSum-res res);return res;}public float getSub(float i, float j) {float res i - j;System.out.println(SmartDog-getSub-res res);return res;} }创建SmartAnimalAspect切面类 Component Aspect public class SmartAnimalAspect {//给SmartDog配置前置返回异常最终通知//前置通知Before(value execution(public float com.wyxde.spring.aop.SmartDog.getSum(float, float)))public void showBeginLog(JoinPoint joinPoint) {//通过连接点对象joinPoint 可以获取方法签名Signature signature joinPoint.getSignature();System.out.println(SmartAnimalAspect-切面类showBeginLog()[使用的myPointCut()]-方法执行前-日志-方法名- signature.getName() -参数 Arrays.asList(joinPoint.getArgs()));}//返回通知AfterReturning(value execution(public float com.wyxde.spring.aop.SmartDog.getSum(float, float)), returning res)public void showSuccessEndLog(JoinPoint joinPoint, Object res) {Signature signature joinPoint.getSignature();System.out.println(SmartAnimalAspect-切面类showSuccessEndLog()-方法执行正常结束-日志-方法名- signature.getName() 返回的结果是 res);}//异常通知AfterThrowing(value execution(public float com.wyxde.spring.aop.SmartDog.getSum(float, float)), throwing throwable)public void showExceptionLog(JoinPoint joinPoint, Throwable throwable) {Signature signature joinPoint.getSignature();System.out.println(SmartAnimalAspect-切面类showExceptionLog()-方法执行异常-日志-方法名- signature.getName() 异常信息 throwable);}//最终通知After(value execution(public float com.wyxde.spring.aop.SmartDog.getSum(float, float)))public void showFinallyEndLog(JoinPoint joinPoint) {Signature signature joinPoint.getSignature();System.out.println(SmartAnimalAspect-切面类showFinallyEndLog()-方法最终执行完毕-日志-方法名- signature.getName());}}修改类beans.xml 配置自动扫描的包, 同时引入对应的名称空间 如果我们是普通的java项目, beans.xml 放在src下如果我们是java maven 项目, beans.xml 放在 src/main/resources ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:aophttp://www.springframework.org/schema/aopxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsdcontext:component-scan base-packagecom.wyxde.spring.component/context:component-scan base-packagecom.wyxde.spring.aop/!--启用基于注解方式的AOP功能--aop:aspectj-autoproxy/!--配置后置处理器--bean classcom.wyxde.spring.process.MyBeanPostProcessor idmyBeanPostProcessor/ /beans创建AppMain类 public class AppMain {public static void main(String[] args) {//测试看看是否可以得到spring容器中的bean , 同时看看依赖注入是否OKApplicationContext ioc new ClassPathXmlApplicationContext(beans.xml);UserAction userAction (UserAction) ioc.getBean(userAction);UserAction userAction2 (UserAction) ioc.getBean(userAction);System.out.println(userAction userAction);System.out.println(userAction2 userAction2);UserDao userDao (UserDao) ioc.getBean(userDao);System.out.println(userDao userDao);UserService userService (UserService) ioc.getBean(userService);System.out.println(userService userService);//测试一下当前的依赖注入userService.m1();//测试一下AOPSmartAnimalable smartDog ioc.getBean(SmartAnimalable.class);smartDog.getSum(10, 2);} }输出结果 简单分析 AOP 和 BeanPostProces关系 AOP 实现 Spring 可以通过给一个类加入注解 EnableAspectJAutoProxy 来指定, 比 如 我们来追一下EnableAspectJAutoProxy 看一下 AnnotationAwareAspectJAutoProxyCreator 的类图 分析 AOP 底层是基于 BeanPostProcessor 机制的. 即在 Bean 创建好后根据是否需要 AOP 处理决定返回代理对象还是原生 Bean 在返回代理对象时就可以根据要代理的类和方法来返回 其实这个机制并不难本质就是在 BeanPostProcessor 机制 动态代理技术 下面我们就准备自己来实现 AOP 机制, 这样小伙伴们就不在觉得 AOP 神秘通透很多了. 总结 到本文为止以及全部完成了准备了下一篇就开始正式手动实现 Spring 底层机制 手动实现 Spring 底层机制【初始化 IOC容器依赖注入BeanPostProcessor 机制AOP】系列 手动实现 Spring 底层机制 实现任务阶段一编写自己 Spring 容器-准备篇【1】 热门专栏推荐 想学习vue的可以看看这个 java基础合集 数据库合集 redis合集 nginx合集 linux合集 等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持 欢迎大家加入我的社区 尘觉社区 文章到这里就结束了如果有什么疑问的地方请指出诸佬们一起来评论区一起讨论 希望能和诸佬们一起努力今后我们一起观看感谢您的阅读 如果帮助到您不妨3连支持一下创造不易您们的支持是我的动力
http://www.w-s-a.com/news/723813/

相关文章:

  • 新公司注册网站传奇手游大型网站
  • 无极网站网站涉案多少人被抓网站的按钮怎么做
  • ds216j做网站做购物网站那个好
  • 做淘宝门头的网站阿里巴巴官网app
  • 安踏网站建设策划方案如何通过域名访问网站
  • 建设网站破解版seo查询 站长之家
  • 太原模板建站平台旅游企业网站建设工作的通知
  • 网站国外建设超级简历模板官网
  • 上海网站建设市场医药网站怎么做
  • 宁夏成城建设集团网站网店美工课本
  • 哪些网站的简历做的比较好政务服务 网站 建设方案
  • 如何建设个人网站凡科怎么样vps安装wordpress后怎样登录
  • 学seo朝阳区seo
  • 网站开发团队成员皮具网站建设
  • 国外外贸需求网站响应式布局网页
  • 手机端便民服务平台网站建设昆明网络哪家好
  • 产品网站建设找哪家舟山信息港
  • 唐山网站建设汉狮怎么样seol英文啥意思
  • 深圳小程序网站开发公司网页制作模板视频教程
  • 电子商务网站开发开题报告wordpress更改后台地址
  • 网站静态前端是什么工作
  • 餐饮门户网站 方案怎么做创业好项目
  • 做百度手机网站推广普通话的宣传标语
  • 记事本可以做网站吗网站服务器是主机吗
  • 手机网站被拦截怎么办怎么解决东营建设信息网网
  • 外贸网站模板免费微信网站开发技术
  • 视频盗版网站怎么做福州网站seo
  • 成都金铭 网站建设做网站包含的技术
  • 长沙的网站建设公司哪家好做网站应选那个主题
  • 公司网站百度搜不到如何自己做一个网站