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

网站建设教程搭建汽岁湖南岚鸿专注一个网站做两个语言模板可以吗

网站建设教程搭建汽岁湖南岚鸿专注,一个网站做两个语言模板可以吗,二级域名需要备案吗,甘肃兰州天气预报前言#xff1a;本文不介绍 AOP 的基本概念、动态代理方式实现 AOP#xff0c;以及 Spring 框架去实现 AOP。本文重点介绍 Spring Boot 项目中如何使用 AOP#xff0c;也就是实际项目开发中如何使用 AOP 去实现相关功能。 如果有需要了解 AOP 的概念、动态代理实现 AOP 的本文不介绍 AOP 的基本概念、动态代理方式实现 AOP以及 Spring 框架去实现 AOP。本文重点介绍 Spring Boot 项目中如何使用 AOP也就是实际项目开发中如何使用 AOP 去实现相关功能。 如果有需要了解 AOP 的概念、动态代理实现 AOP 的请查看我的另外一篇文章 一篇文章带你深入了解 AOP 正文开始 Spring Boot中实际应用AOP 1、之前介绍的实现 AOP 的方式中是有 XML 文件设置。但在 Spring Boot 中没有 XML 文件那怎么设置 AOP 2、实际应用中MVC三层架构现需要在控制器中统一进行日志的输出有各种各样的控制器那怎么实现也就是说实际应用中如何实现 1、Cal 接口、CalIml 接口实现类 还是跟 Spring框架实现AOP 中一样。之前的两个依赖不要添加这个依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId /dependency2、控制器中需要打印日志比如调控制器中的哪个方法接口、方法有哪些参数、返回值。当然你肯定可以在每个方法中写但显然这不现实。这里用 AOP 方法将打印日志抽离出来然后需要的时候嵌入到每个方法中 //以下代码仅是为了测试代码不规范请注意。RestController RequestMapping(/aop) public class AopSpringBootTestHandler {GetMapping(/findAll)public ListAccount findAll() {return Arrays.asList(new Account(1, 张三, 25), new Account(2, 李四, 26));}GetMapping(/findById/{id})public Account findById(PathVariable Integer id) {return new Account(1, 张三, 25);}GetMapping(/add)public boolean add() {return true;}GetMapping(/update)public boolean update() {return true;}GetMapping(/delete/{id})public boolean delete(PathVariable Integer id) {return true;} }自定义注解 3、自定义注解比如创建一个 annotation 的包然后创建一个 LogAnnotation可自定义比如这里是打印日志的注解 为什么要这个自定义注解---- 首先你要让 AOP 知道你调了哪些方、哪些方法需要让 AOP 进行处理所以就要让 AOP 知道这些方法怎么知道 ---- 通过自定义注解 其次并不是所有的方法都需要进行 AOP 处理所以通过 注解 标记。 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) Documented public interface LogAnnotation {//使用注解时给注解中添加值String value() default ; }说明Target、Retention、Documented 都是元注解描述注解的注解 Target 表示该注解的使用目标其中 Target(ElementType.METHOD) 表示只能使用在方法上 Retention(RetentionPolicy.RUNTIME) 表示在运行时使用该注解。 interface 标志这是一个注解。 String value() default ; 固定写法表示在使用注解的时候可以添加值默认为空 **使用自定义注解**需要进行 AOP 处理的方法标记即可 4、标记完后同理需要切面类执行非业务代码比如这里是输出日志 Component Aspect public class CreateAspectUtil {/*我们利用自定义注解标记了哪些方法需要进行AOP处理那真正需要处理的时候怎么找到这些标记通过 Pointcut切入点找到这些标记所以这个方法就是为了找到标记必须是空方法体*/Pointcut(annotation(com.example.test.aopspringboottest.annotation.LogAnnotation))public void logPointCut() {}/*找到标记后怎么执行日志1、跟之前一样有Before前置通知、After后置通知等等Around注解就是将各种通知统一到一起然后将找标记的方法放进去2、连接点 ProceedingJoinPoint 是 joinPoint 的子接口只是ProceedingJoinPoint中有这个proceed()方法为了获取方法的返回值*/Around(logPointCut())public Object around(ProceedingJoinPoint joinPoint) throws Throwable {String methodName joinPoint.getSignature().getName();String methodArgs Arrays.toString(joinPoint.getArgs());System.out.println(methodName 方法的参数是 methodArgs);return joinPoint.proceed(); //返回目标方法也就是业务代码中的返回值} }演示 启动启动类后直接访问 没加标记的就不会打印日志。 注意现在还要求输出自定义注解中的值 怎么办---- 通过反射获取注解即可 既然获取注解注解是添加在方法上的所以先通过反射获取方法怎么获取---- 只有一个连接点所以还是通过连接点 Around(logPointcut()) public Object around(ProceedingJointPoint jointPoint) throws Throwable {//通过连接点获取到方法的签名MethodSignature methodSignature (MethodSignature)joinPoint.getSignature();//通过方法签名获取到方法Method method methodSignature.getMethod();//拿到方法后拿注解把自定义注解的运行时类给它LogAnnotation annotation method.getAnnotation(LogAnnotation.class);if (annotation ! null) {//拿注解中的值通过里面的value方法String value annotation.value();//这个value就是注解里面的内容System.out.println(value);} }
http://www.dnsts.com.cn/news/29284.html

相关文章:

  • 九江本土专业网站建设西安高端品牌网站建设
  • 南昌做网站优化网站中弹出广告怎么做的
  • WordPress只能ssl章丘做网站优化
  • 专业手机网站建设公司外贸营销公司
  • 网站建设合同属于技术服务合同吗广东建设协会网站首页
  • 网站是如何建立的网站开发培训 价格
  • 手机版网站开发框架上海全网营销推广
  • wordpress 指定分类置顶文章上海seo网站设计
  • 外贸出口平台网站广州建设网站
  • 网站和微信wordpress后台可视化编辑器
  • wordpress 使用技巧信息流是sem还是seo
  • 绿色国外网站深圳市建设
  • 阳春市建设局网站东莞网站建设快速排名
  • 进行网站建设的上市公司泉州市新濠网络科技有限公司
  • 企业网站 响应式 案例虹口门户网站建设
  • 金山区网站建设郑州电商小程序定制
  • 淅川微网站开发一键wordpress建站
  • 2015年做网站行不行做示意图的网站
  • 新河网站wordpress文本小工具栏
  • 大方泳嘉网站建设网站上怎么做游戏
  • 企业备案网站服务内容wordpress官方正式版
  • 做泵阀到哪个网站好搭建网站开发网站环境
  • 上海做网站内容检查的公司网站访问index.html
  • 营销网站建设网络公司做网站爱游戏
  • 深圳市建设安监站网站活动策划招聘
  • 企业建站用什么主机网站优化报价
  • 免费制作单页的网站蜜芽免费网站域名
  • 做网站团队搜索词分析
  • 域名怎么解析到网站国字类型网站有哪些内容
  • 开源电商网站建设价格网站的建设多少钱