IOC-golang 的 AOP 原理与应用原创 李志信(冀锋) 阿里开发者   AOP 与 IOC 的关系AOP (面向切面编程)是一种编程设计思想,旨在通过拦截业务过程的切面,实现特定模块化的能力,降低业务逻辑之间的耦合度。这一思路在众多知名项目中都有实践。例如 Spring 的切点 PointCut 、 gRPC的拦截器 Intercepto            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-11 20:44:21
                            
                                21阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            背景写Java的同学来写Go就特别喜欢将两者进行对比,经常看到技术群里讨论,比如Go能不能实现Java那样的AOP啊?Go写个事务好麻烦啊,有没有Spring那样的@Transactional注解啊?遇到这样的问题我通常会回复:没有、实现不了、再见。  直到看了《Go语言底层原理剖析》这本书,我开始了一轮认真地探索。Java是如何实现AOP的AOP概念第一次是在若干年前学Java时看的一本书《Sp            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-10 21:28:01
                            
                                116阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            hello~大家好,我是小楼,今天分享的话题是Go是否能实现AOP?背景写Java的同学来写Go就特别喜欢将两者进行对比,就经常看到技术群里讨论,比如Go能不能实现Java那样的AOP啊?Go写个事务好麻烦啊,有没有Spring那样的@Transactional注解啊?遇到这样的问题我通常会回复:没有、实现不了、再见。直到看了《Go语言底层原理剖析》这本书,开始了一轮认真地探索。Java是如何实现            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-03 14:58:38
                            
                                91阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一.面向对象和面向过程面向过程编程代码只适用于当前情况,而面向对象编程更注重重用,同一套代码可以使用多样的情况面向过程编程(OPP)就是详细的按照顺序的把整个过程实现例如:学生从家里去上学需要出门-->找到OFO-->扫描开锁-->上车-->直行-->左拐-->找到”粥饼面”-->停车-->上锁-->开门--> 找到座位-->点山东            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-17 17:32:44
                            
                                69阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、面向过程和面向对象的区别面向对象(Object Oriented,简称OO)和面向过程(Procedure Oriented,简称PO)是两种不同的编程思想。1.1 面向过程的编程面向过程编程(Process Oriented Programming,简称POP),以事物的发展过程为中心的编程思想,它根据流程一步一步解决问题。1.1.1 面向过程的程序设计 传统的面向过程程序设计是围            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-20 06:33:24
                            
                                52阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在 Java 开发中,AOP(面向切面编程)是一种非常流行的技术。它让日志记录、权限校验、性能监控等横切关注点与核心业务逻辑解耦,使得代码结构更加清晰、职责更明确。接下来我们借助 Gin 框架的中间件和函数包装机制,展示如何实现这一思想,并分析其与纯 AOP 的异同。1. AOP 的优点在 Java 应用中,AOP 的主要优势包括:解耦业务逻辑与通用功能
业务代码专注核心业务,而诸如日志记录、错误            
                
         
            
            
            
            学习内容Go语言介绍1.Go语言是什么“Go是一种开源的程序设计语言,它意在使得人们能够方便地构建简单、可靠、高效率的软件”开发人员在为项目选择语言时,不得不在快速开发和性能之间做出选择。C和C++这类语言提供了很快的执行速度,而 Ruby 和 Python 这类语言则擅长快速开发。Go语言在这两者间架起了桥梁,不仅提供了高性能的语言,同时也让开发更快速。 2009年11月10日,Go语言正式成为            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-30 13:35:42
                            
                                218阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            循环语句for1.1.1. Golang for支持三种循环方式,包括类似 while 的语法。for循环是一个循环控制结构,可以执行指定次数的循环。语法Go语言的For循环有3中形式,只有其中的一种使用分号。 for init; condition; post { }
for condition { }
for&nb            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-06 19:59:14
                            
                                244阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            GO语言结构包声明package引入包import函数func变量语句,表达式单行注释,多行注释packagepackage是最基本的分发单位和工程管理中依赖关系的体现,go语言源代码文件开都都必须有package声明,表示源码文件所属代码包;生成go语言可执行程序,必须有main的package包,该包中必须有main函数,该函数是程序运行的入口;同一路径只能有一个package,一个packa            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-20 02:38:25
                            
                                292阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            初识Go语言Go语言介绍1. Go语言是什么2009年11月10日,Go语言正式成为开源编程语言家庭的一员。Go语言(或称Golang)是云计算时代的C语言。Go语言的诞生是为了让程序员有更高的生产效率,Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。开发人员在为项目选择语言时,不得不在快速开发和性能之间做出选择。C            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-15 14:34:54
                            
                                163阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1 方法的介绍1)方法的概念:简单说就是一个对象里面的函数,称为方法。2)在go语言中,可以给任意自定义类型(包括内置类型,但不包括指针类型)添加相应的方法。3)方法总是绑定对象实例,并隐式将实例作为第一参数。4)方法的语法:func (receiver receiverType) funcName(parameters) (results)
// 1. receiver 为任意名字。
// 2.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-02 13:11:37
                            
                                128阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录1. Go简介2. Go的数据类型2.1 布尔型2.2 数字类型2.3 字符串类型:2.4 派生类型:3. Go变量声明2.1 标准格式3.2 批量格式3.3 简短格式3.4 常量4. go循环语句5. go 条件语句 1. Go简介Go语言也称为 Golang,是由 Google 公司开发的一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。Go语言(或 Golang)起源于            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-18 09:18:30
                            
                                270阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            翻译自:https://golangbot.com/functions/什么是函数函数是执行特定任务的代码块。函数接受输入,对输入执行一些计算并生成输出。函数声明在 Go 中声明一个函数的语法为:func functionname(parametername type) returntype {  
 //function body
}函数声明以func关键字开头,后面是函数名称。接着在一对()中            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-12 18:04:42
                            
                                152阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            go语言学习指南            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-11 19:36:59
                            
                                233阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录Go语言介绍Go语言特性Go语言发展(版本/特性)Go语言应用谁在用GoogleFacebook腾讯百度京东小米360应用领域Go语言项目Go语架构Go语言发展前景Go语言介绍Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言。Go是静态强类型语言,是区别于解析型语言的编译型语言。解析型语言——源代码是先翻译为中间代码,然后由解析器对代码进行解释执行。编译型语言            
                
         
            
            
            
            结构体 Struct
第一个概念:结构体类型怎么表示?
就好像整型类型表示为int,字符串切片类型表示为[]string, key为字符串value为整型的哈希表的类型表示为map[string]int一样,结构体的类型表示为struct{...}            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-01 08:34:43
                            
                                118阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            最近在写一个自动生成api文档的功能,用到了reflect包来给结构体赋值,给空数组新增一个元素,这样只要定义一个input结构体和一个output的结构体,并填写一些相关tag信息,就能使用程序来生成输入和输出的相关文档。介绍reflect包是golang中很重要的一个包,实现了在运行时允许程序操纵任意类型对象的功能。可以看下文档简单了解一下。在reflect中,最重要的是Value类,只有先获            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-14 18:20:07
                            
                                87阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录安装快速入门使用[jsoniter 构建](https://github.com/json-iterator/go)API 示例快速构建RESTful风格接口GET, POST, PUT, PATCH, DELETE请求路径中的参数查询字符串参数Multipart/Urlencoded 表单query 和 post 表单Map as querystring or postform par            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-01 08:46:27
                            
                                87阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            既然是Go语言实战,那看了就必须动手敲出来,先把书本中的知识点,案例看一遍,有不懂或疑惑,感觉前后无法关联起来的地方,需要翻到前面看相关的知识点,保证能理解书中主要内容,然后在自己凭着自己的理解,重新实现一遍。案例功能开启多个 goroutine 去请求 xml 资源, 然后解析xml 数据并存放到 channel 中,最后将 channel 中的数据读取出来,输出到控制台中。实现步骤读取本地的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-16 21:20:44
                            
                                127阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                    go虽然是服务端语言,但是使用go也可以用于实现客户端,这里使用walk来实现。walk的git地址:https://github.com/lxn/walkwalk的说明文档:https://godoc.org/github.com/lxn/walk        go的git上面给出了实现一个简单的g            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-09 20:16:55
                            
                                131阅读