赞
踩
最近跟着网上在弄gpt微信公众号
最近主要做了几件事情
1.深入学习了springboot的原理和技术框架。
2.学习了http访问的相关
3.实现了公众号跟本地springboot的对接
4.实现了本地调用gpt的gpt3.5-api成功。
springboot是微服务的一种框架,微服务的业务目标是:
1.简化大型系统的跨组织沟通,解耦各功能间的相互影响,让各模块专注本身模块的开发
2.让大型系统能承载更多的业务流量
3.让大型系统更稳定
spring中为了实现这些目标,设计了三种设计模式和思想。
1.解耦模块,所以提了个控制反转这种思想,在spring中通过依赖注入这种具体技术来实现控制反转,依赖注入说白了就是把类B的实例的实现初始化放在类A外面,通过把B具体的实例通过参数传递给A,在A中不用去初始化或者实例化类B,那么类B是由谁来实例化的呢?在spring中由spring的IOC来统一进行类的实例化。
2.业务外包,面向切面的编程的业务目标就相当于现在的业务外包,让自己专注于主要目标和功能,次要功能由外部第三方来实现;或者是让自己专注于不变化的功能,而让变化的功能在不同的场景下由不同的三方来实现。比如一个对象,他里面的日志记录功能,就可以让三方来实现,而他自己专注业务本身的功能;同时在不同的场景下可以使用不同的日志。
面向切面的编程通过注解来实现,要被抽取的类上不做任何注解,而是把被抽取的内容称为切面,并所有注解都在该内容上什么,整体抽取的内容会被重新申明为一个类,通过@aspect来标识为切面,类里面具体方法就是具体被抽取出来的内容前面,通过@pointcut标识为切点execution标识具体被切对象的那个方法前后调用该内容(有点乱,而且不容易懂,后面有了更形象的说明再来更新)
3.减少开发工作量,通过约定大于配置,就是通过一些关键字表示配置,比如注解来表示很多信息(感觉像新的开发语言了),xml是之前配置表现的最多的形式,在以前我们要写代码去都xml的信息,然后进行具体处理,那么现在我们在代码里面直接写注解,就可以把很多关键字映射到其他代码里面的逻辑操作。
其实前面两点对我来说都还好理解,因为做过实际开发的,知道代码编写的套路。对于第三点约定大于配置就真的需要去记住有哪些约定,这些约定是约定了什么内容,不然在看的时候只看到约定的关键字,完全不知道在干什么
spring定义了一些相关软件包,通过springbootstarter关键字,springboot框架让maven或gradle自动导入这些软件包。这些软件包一般是基础的运行组件等,比如web服务,开发需要的软件库等
@ConditionalOn***就是指在满足这个条件下然后使用这里的配置,这个下面是跟对参数的设置或修改(配置其实根本目标就是传递具体参数内容)
通过一些约定好的端点(就是http://***/info,http://**/health),通过访问这些端点可以获取一些运行信息。开发人员还可以通过实现endpoint接口来定义自己的端点
在yam文件中定义key-value,在代码中直接通过@value来获取Key-value
@SpringBootApplication:主程序
@Controller:用于标识一个类是 Spring MVC 控制器,处理 HTTP 请求。
@RequestMapping: 用于映射 HTTP 请求路径到处理方法。 @controller和@RequestMapping一般一起使用
@Service: 用于标识一个类是业务服务类。
@Autowired:自动装配,用于注入 Spring 管理的 Bean。
http是用来解决跨系统的数据交换(最开始http是超文本协议,用来传输超链接的,以前的忽略)
为什么用http而不直接用socket的来传输数据?socket会比较麻烦,http已是基于socket tcp连接的,所以http的底层连接是有状态的连接,但是Http本身是没有状态的连接,所以后来引入了sesion,cokie等来标识连接之间的关系。
http相当于把网络业务数据通信进行了标准化定义,包括访问方式,数据格式等
访问方式:
这种情况一般用做网页开发
这种一般用作分布式系统数据交互,这已就是restful,
restful的目标是分布式系统的具体数据的交互。关注资源的定义和通过http方式来交互,相当于把http里面的内容信息用来做key-value这种数据交互,而这种方式一般是不用于web开发,而是用在分布式系统的数据交互。
公众号对接业务目的:确定在微信公众号上展示什么内容(微信公众号只是个展示平台,展示内容和展示方式由三方程序决定 )
restful api的方式。
gptai api的业务目的:
让三方通过api的方式来使用大模型。
调用方式:可以通过库,可以通过restful api的方式。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。