简单介绍十几款常用的画架构图流程图的软件 draw.io是开源免费的在线画图工具,还提供桌面版本。实时协作;支持在线离线版本;存储支持多种方式:Google Drive, OneDrive, GitHub, GitLab, Dropbox等;许多丰富的图标库。
Spring Boot整合Google Bard - Web接口访问Google AI聊天机器人 对象注入,通过HTTP GET方法来提问。所以Controller要从GET请求中获取问题,并向。,可以帮助我们简单的提问并获得答案。获取到答案后,我们返回一个对应的DTO对象。应用中,通过Web API让大家可以访问。在使用它之前,我们需要创建一个对应的。
开发了一个Java库的Google Bard API,可以自动化与AI对话了 目前没有用户名密码的方式,直接有Token就行。但这个要从网页上拿。它其实就是一个Cookie,名为。是Google提供的还在实验阶段的人工智能对话服务。来的,它可以提供更实时的答案,会基于Google强大的网页数据。能够回答问题,一般会给出三个答案。第一个是推荐的答案。据说Google未来会开放API接口,拭目以待吧。使用是非常简单的,只要网络通就可以了。这个要在程序最开始设置。欢迎大家STAR...
Try out Google Bard, Will Google Bard beat the ChatGPT? 【代码】Try out Google Bard, Will Google Bard beat the ChatGPT?
用Python基于Google Bard做一个交互式的聊天机器人 发送请求的时候,把之前准备的参数和数据发一个POST请求到。通过浏览器先拿到SessionID,它是一个。现在我们想实现自动化,所以我用。之前已经通过浏览器试过了。做一个交互式的聊天机器人。
Java多种方法实现等待所有子线程完成再继续执行 简介在现实世界中,我们常常需要等待其它任务完成,才能继续执行下一步。Java实现等待子线程完成再继续执行的方式很多。我们来一一查看一下。Thread的join方法该方法是Thread提供的方法,调用join()时,会阻塞主线程,等该Thread完成才会继续执行,代码如下:private static void threadJoin() { List<Thread> threads = new ArrayList<>(); for (int i = 0; i <
《Terraform 101 从入门到实践》 Terraform在公有云Azure上的应用 《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。简介Azure是微软的公有云,它提供了一些免费的资源,具体可以查看: https://azure.microsoft.com/en-us/free/本章将介绍如何通过Terraform来使用Azure的云资源。注册Azure账号首先要注册一个Azure账号,我选择用GitHub账号登陆,免得又记多一个密码。跳到GitHub,同意即可
《Terraform 101 从入门到实践》 Terraform在公有云GCP上的应用 《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。Terraform支持的公有云有很多,如AWS、Azure、Google、Alibaba等。将Terraform应用于公有云,才最能发挥其强大的功能。初始化GCP项目创建一个新项目首先我们需要初始化一个GCP项目。GCP给开发者提供了免费试用的服务,我们可以在不花钱的情况下学习GCP的功能。要使用GCP,我们需要创建一个项目,它所有的资
《Terraform 101 从入门到实践》 Functions函数 《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。Terraform的函数Terraform为了让大家在表达式上可以更加灵活方便地进行计算,提供了大量的内置函数(Function)。目前并不支持自定义函数,只能使用Terraform自带的。使用函数的格式也很简单,直接写函数名+参数即可。如下面的函数为取最大值:> max(34, 45, 232, 25)232这里把函数单独列成一
《Terraform 101 从入门到实践》 第五章 HCL语法 《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。介绍了Terraform一些比较基础的概念后,我们可以先了解一下Terraform的语法,也就是HCL的语法。变量Variables变量是实现代码复用的一种方式,同样的代码不同的变量往往会有不同的效果。而在Terraform里,有一个概念非常重要,就是变量都是从属于模块的。变量无法跨模块引用。即在模块A定义的变量X,无法在模块B中直接引用。
《Terraform 101 从入门到实践》 第四章 States状态管理 《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。军书十二卷,卷卷有爷名。为什么需要状态管理Terraform的主要作用是管理云平台上的资源,通过声明式的HCL配置来映射资源,如果云平台上没有资源则需要创建,如果有则不用。那Terraform要实现这个功能有多种方式。一种是每次执行apply命令时都调用API接口检查一下远程的云资源是否与配置文件一致,如果没有则创建,如果有但不同则需
《Terraform 101 从入门到实践》 第三章 Modules模块化 《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。模块的概念模块化是Terraform实现代码重用的方式。模块可以理解为一个包含多个资源的容器模板。封装好之后,可以给大家使用。也可以理解为代码中的函数或方法,它接收入参,经过一些声明式的调用后,输出一些结果变量。从Terraform的代码层面来看,模块其实就是一个包含多个.tf或.tf.json文件的目录。任何一个Terraform项目,都
《Terraform 101 从入门到实践》 第二章 Providers插件管理 《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。不怕出身低,行行出状元。插件Terraform可以对多种平台的多种资源进行管理,这个是通过插件来实现的。这里的插件,在Terraform的世界也叫Providers,也是一个个可执行文件。不同的插件完成不同的功能,对接AWS,就要使用AWS的插件;对接GCP,就要用GCP的插件。当我们通过terraform init初始化一个项目时
《Terraform 101 从入门到实践》 第一章 Terraform初相识 《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。初闻不知Terraform,再闻已是云中人。什么叫基础设施即代码?在以前,当我们需要把应用部署在服务器时,需要购买多台服务器和机房、组装交换机和网络、不间断电源UPS等。随着云时代的到来,我们可以在IaaS(Infrastructure as a Service)平台直接购买所有的基础设施,包括服务器、专用网络、DNS、负载均衡等,而你
《Terraform 101 从入门到实践》 前言 《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。Terraform 101 从入门到实践Terraform作为基础设施即代码(Infrastructure as Code,很简称IaC)的事实标准,非常值得大家学习。我是工作中会使用公有云,所以需要经常使用Terraform作为IaC工具以实现自动化部署;也花时间考取了Terraform Associate的证书。所以对它的使用我还是有一些
Springboot整合AOP和注解,实现丰富的切面功能 简介我们在文章《Spring AOP与AspectJ的对比及应用》介绍了AOP的使用,这篇文章讲解一下AOP与注解的整合,通过注解来使用AOP,会非常方便。为了简便,我们还是来实现一个计时的功能。整合过程首先创建一个注解:@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface PkslowLogTime {}然后在一个Service中使用注解:@Service@Slf4jpublic
Spring AOP与AspectJ的对比及应用 1 简介AOP,即面向切面编程是很常用的技术,特别是在Java Web开发中。而最流行的AOP框架分别是Spring AOP和AspectJ。2 Spring AOP vs AspectJSpring AOP是基于Spring IoC实现的,它解决大部分常见的需求,但它并不是一个完整的AOP解决方案。对于非Spring容器管理的对象,它更没有办法了。而AspectJ旨在提供完整的AOP方案,因此也会更复杂。2.1 织入方式两者织入方式有极大的不同,这也是它们的本质区别,它们实现代理的方式不同。A
Java JDK Proxy和CGLib动态代理示例讲解 简介代理模式在Java中有很多应用场景,而代理又分静态代码和动态代理。静态代理是编写、编译或加载时织入代码实现,而动态代理则在运行时实现。简单而言,静态代理是在运行前就已经存在,而动态代理则在运行时才存在的。而常用的动态代理有两种实现:JDK Proxy: JDK Proxy是JDK自带的,不需要引入外部库,通过实现接口进行代理;CGLib: CGLib是引入第三方库,通过ASM技术来实现字节码的生成;通过继承的方式来实现。现在我们来通过代码分别展示一下两种方式。JDK ProxyJDK P
Spring在Filter中记录Web请求Request和返回Response的内容及时长 1 简介在Spring MVC中,我们有时需要记录一下请求和返回的内容,方便出现问题时排查。比较Header、Request Body等。这些在Controller也可以记录,但在Filter中会更方便。而我们使用的是OncePerRequestFilter。2 记录请求2.1 流重复读的问题可以通过下面的代码来读取请求Body:byte[] requestBody = StreamUtils.copyToByteArray(request.getInputStream());log.info(