很多朋友对于汉字代码和用汉字编程写代码不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
作者:小傅哥博客:https://bugstack.cn-包含:Java基础,面经手册,Netty4.x,手写Spring,用Java实现JVM,重学Java设计模式,SpringBoot中间件开发,IDEA插件开发,DDD系统架构项目开发,字节码编程...
沉淀、分享、成长,让自己和他人都能有所收获!
在编程的路上你是否想过,用汉字写一写代码?
最近有初学编程的小伙伴问小傅哥,汉字可以写代码吗。自己英文不好,要是汉字可以写代码就好了。难道你要的是易语言?其实并不是,小伙伴也是学习Java的初学者,刚刚学习到Spring看着一片没有注释的代码实在不好理解,要是都是汉字写的,那不和读作文一样了吗!
说到注释,我想到大部分程序员讨厌的两件事;
其实对于学习编程来说,初学时写写案例,完成简单的功能,反复练习夯实基础。数学和英文都还并不是你的绊脚石,因为你不需要做复杂的逻辑处理,比如算法。也不需要查阅大量的资料,比如原版的英文资料以及国内没有翻译的技术书籍等。所以这个时候对你来说,只是需要不断的学,不断的写。并逐步强加自己的数学和英文能力。
回到我们的说的,既然你问汉字可以写代码吗。其实在java里,原则上你可以写汉字的类、属性、方法,JVM虚拟机也是可以通过编译执行的。只是这样的代码并不能很好的维护,甚至说乱码了也很麻烦。再者,有人写方言怎么办!
好!那么我们接下来就使用汉字的方式来编写一段关于SpringAop的案例!
为了这个案例更加真实,我们模拟电影清朝韦小宝时期,太监入宫的过程。说白了也就是Spring的AOP面向切面,切的编程。
在做案例之前,我们先了解一下AOP的基本概念;
紫禁城.内务府.敬事房.膑.太监膑.净身监管.java
@Aspect\n@Component\npublicclass净身监管{\n\n@Pointcut("execution(public*紫禁城.内务府.敬事房.利器库..*.军刺切(..))")\npublicvoid监管员(){\n\n}\n\n@Before("监管员()")\npublicvoid敬事前(){\nSystem.out.println("敬事前:---------准备下刀......");\n}\n\n@After("监管员()")\npublicvoid敬事后(){\nSystem.out.println("敬事后:---------切面完成......");\n}\n\n@Around("监管员()")\npublicObjectaroundMethod(ProceedingJoinPointpjp)throwsThrowable{\n\nSystem.out.println("待切身份:"+pjp.getArgs()[0]);\nSystem.out.println("执行工具:"+pjp.getSignature().getName());\n\n//获得传递对象,并做处理\n太监膑太监=(太监膑)pjp.getArgs()[0];\nSimpleDateFormattimeFormat=newSimpleDateFormat("yyyy-MM-dd");\n太监.set敬事日期(timeFormat.format(newDate()));\n\n//此处可以传递更改后的参数\nObjectobj=pjp.proceed(newObject[]{太监});\n\nreturnobj;\n\n}\n\n}\n@Aspect,定义切面类,用于处理程序中的切面编程操作。@Pointcut("execution(public*紫禁城.内务府.敬事房.利器库..*.军刺切(..))"),定义切点处,对那些方法进行执行切面操作。除了这样的操作外,还可以定义成自定义注解。那么后续只要把某个你需要的方法上面添加这样的自定义注解,就可以被AOP拦截。@Before("监管员()")、@After("监管员()"),记录切面执行前后的记录。@Around("监管员()"),用于环绕方法增强,可以这里去处理方法中的一些属性信息,比如添加给某个字段添加时间。太监.set敬事日期(timeFormat.format(newDate()));2.设置切面可执行方法
紫禁城.内务府.敬事房.利器库.切除器具.java
@Component("切除")\npublicclass切除器具{\n\npublic太监膑军刺切(太监膑太监){\n太监.set性别(宦官.太监.name());\nSystem.out.println("...啊......老子被切面了!"+太监.get姓名());\nreturn太监;\n}\n\n}\n这里类的方法就是上面定义的切点,Pointcut,也就是会被切面处理的方法。3.执行切面操作类
紫禁城.内务府.敬事房.执刀人.张三丰执刀.java
publicclass张三丰执刀{\n\npublicstaticvoidmain(String[]args){\n\nApplicationContextctx=newClassPathXmlApplicationContext("皇太极.xml");\n\n太监刑太监行刑=ctx.getBean("太监刑",太监刑.class);\n\n太监膑太监=new太监膑();\n太监.set姓名("小德张");\n太监.set年龄("9");\n太监.set性别(宦官.男.name());\n\n太监=太监行刑.执行切除(太监);\n\nSystem.out.println("\\r\\n切除状态:"+太监);\n}\n\n}\n首先这里定义了获取Spring注解的Application,用于我们获取Bean。接下来定义一个对象类,主要传递具体参数信息交给执行切面的方法,进行操作。最后输出结果信息,也就是我们可以看到具体被切面操作的方法。四、测试结果1.执行内容
启动方法;紫禁城.内务府.敬事房.执刀人.张三丰执刀.java
待切身份:太监膑[姓名=小德张,年龄=9,性别=男,敬事日期=]\n执行工具:军刺切\n敬事前:---------准备下刀......\n...啊......老子被切面了!小德张\n敬事后:---------切面完成......\n\n切除状态:太监膑[姓名=小德张,年龄=9,性别=太监,敬事日期=2020-05-05]\n\nProcessfinishedwithexitcode0\n2.效果图
切面运行效果图
关于汉字代码和用汉字编程写代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。