摘要: 在某些特定的场景下,需要指定配置文件,而@PropertySource默认是不支持Yaml类型的配置文件的,因此,在这种情况下,通常只能将Yaml文件改写为properties文件来让@PropertySource识别。这里介绍一种方式来让@PropertySource支持Yaml格式的文件。 我们 阅读全文
posted @ 2020-10-15 16:07 猎喵Rachel 阅读(849) 评论(0) 推荐(3)
摘要: 在一些项目中,我们会不可避免地使用到python组件,而生产环境大多数服务器是没有办法直接联网下载python的包的。当然,有的小伙伴会很聪明地把这个包的whl下载下来到服务器上去执行,但是会得到这样的结果: C:\Users\a-mengsr>pip install C:\Users\a-meng 阅读全文
posted @ 2020-10-15 16:04 猎喵Rachel 阅读(1149) 评论(0) 推荐(1)
摘要: 计时器的实现依赖于Timer.periodic,这个函数与JS中的setInterval很类似,是用于定时触发某个动作的,因此,可以考虑定义一个Stateful类型的Widget,在其中定义一个startTimer函数,在其中每隔1000毫秒就执行一次setState触发组件重绘,同时将时间设置为当 阅读全文
posted @ 2020-10-15 16:00 猎喵Rachel 阅读(111) 评论(0) 推荐(0)
摘要: 默认情况下,用户在按导航栏的返回键时,会返回到上一个路由页面,但我们希望在此拦截用户事件,弹出一个对话框询问用户是否退出,若用户点击确定的话,则退出当前会话。 我们使用WillPopScope这个Widget来完成这个设定。 ///构建WillPopScope WillPopScope buildB 阅读全文
posted @ 2020-10-15 15:57 猎喵Rachel 阅读(219) 评论(0) 推荐(0)
摘要: Flutter中使用Drawer来绘制导航菜单。由于所有页面都需要使用到导航菜单,因此将其抽象为全局组件。由于在一次会话中,导航菜单都是固定不变的,因此可以将其定义为Stateless组件。 我们期待的效果应当是左上角出现一个汉堡菜单,点击之后左侧滑出菜单,点击菜单项可以进行路由跳转,因此,需要在全 阅读全文
posted @ 2020-10-15 15:53 猎喵Rachel 阅读(152) 评论(0) 推荐(0)
摘要: 目标:在用户输入用户名密码之后点击“登录”按钮时,服务器认证的同时,显示一个加载动画,告知用户正在进行认证操作 登录页是一个StatefulWidget,因此,通过一个变量来标记当前是否是loading状态,如果是loading状态则在中心显示一个圆形的加载动画,在用户点击登录按钮的时候,设置loa 阅读全文
posted @ 2020-10-15 15:49 猎喵Rachel 阅读(145) 评论(0) 推荐(0)
摘要: 原生Android中有一个Toast类型的通知对象,可以悬浮显示一些信息,类似下图的效果: Flutter中同样可以实现类似的效果: 需要在pubspec.yaml中引入如下组件: fluttertoast: ^4.0.1 由于使用较为频繁,可以将其写成一个静态的全局工具类,在需要的地方直接进行调用 阅读全文
posted @ 2020-10-15 15:47 猎喵Rachel 阅读(338) 评论(0) 推荐(0)
摘要: 公司内网系统中存在大量需要复制数据库表结构的情况,因此,研究了一部分与数据库结构导出和导入相关的API,记录如下。 需求:将A库的表结构(字段,索引等)、存储过程、函数等,完整复制至B库。 首先需要处理的是数据库表结构导出的问题。这里原本是考虑使用JDBC去获取所有字段/索引信息然后手动拼接为DDL 阅读全文
posted @ 2020-10-15 15:34 猎喵Rachel 阅读(382) 评论(0) 推荐(0)
摘要: 通常在进行SQL Server数据库操作时都依赖于SQL Server Management Studio(SSMS)或其他SQL客户端。对于程序而言,某些场景下,必须要使用SSMS原生的API进行DDL操作,而又无法直接操作SSMS GUI程序时,可以按照如下方法进行操作。 场景: 需要将某一个数 阅读全文
posted @ 2020-10-15 15:23 猎喵Rachel 阅读(521) 评论(0) 推荐(0)
摘要: 在某些场景下,需要在Java程序中使用Powershell进行终端交互,这种情况下当然可以直接使用自带的Runtime来完成: Runtime.getRuntime().exec("powershell.exe Get-Item"); 但是这种只适合需要单条指令的情况,而存在多条指令时,无法保证前后 阅读全文
posted @ 2020-10-15 15:20 猎喵Rachel 阅读(2961) 评论(0) 推荐(0)
摘要: 在原先的Horizon平台中,我们采用的是Netflix Zuul作为应用网关,并通过一系列增强的组件和配置来完成限流、降级、熔断的处理。在Spring Cloud Alibaba中,我们将采用Spring Cloud Gateway和Sentinel作为Zuul的代替品。 在开始搭建工程之前,首先 阅读全文
posted @ 2020-10-15 15:15 猎喵Rachel 阅读(1259) 评论(0) 推荐(0)
摘要: Nacos是Spring Cloud Alibaba中一个核心的服务,用于服务发现及配置分发,相当于Spring Cloud Netflix中的Eureka和Spring Cloud Config。由于目前Eureka已经停止更新,因此,后期将不可避免地会从Spring Cloud Netflix迁 阅读全文
posted @ 2020-10-15 15:06 猎喵Rachel 阅读(2690) 评论(0) 推荐(0)
摘要: 微服务的本质是一系列分布式REST API的集合,因此,各服务间最常用的通信协议为HTTP协议。诚然,通过传统的写URL进行调用的方式当然可以,但未免不够优雅。而通过使用Feign,可以做到像调用本地服务一样优雅地调用远程服务。 开发目标是在Zuul中实现一个基础的过滤器,对所有经过Zuul的请求进 阅读全文
posted @ 2020-10-15 15:00 猎喵Rachel 阅读(258) 评论(0) 推荐(0)
摘要: 在开始使用Sleuth之前,需要先确定一下我们追踪之后应该如何显示。此处我选择使用zipkin,但由于zipkin与SpringBoot2.x系列不兼容,因此无法在工程中引入一个单独的zipkin组件。通过如下方式启动一个zipkin Docker容器: docker run -d -p 9411: 阅读全文
posted @ 2020-10-15 14:58 猎喵Rachel 阅读(264) 评论(0) 推荐(0)
摘要: 继续上篇。这篇我们会类似地创建一个Zuul网关用于对所有API进行代理。 引入依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</ar 阅读全文
posted @ 2020-10-15 14:55 猎喵Rachel 阅读(119) 评论(0) 推荐(0)
摘要: 接上篇中的设计,我们需要实现一个动态配置的Eureka服务器。 引入如下依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-serv 阅读全文
posted @ 2020-10-15 14:51 猎喵Rachel 阅读(111) 评论(0) 推荐(0)
摘要: Spring Cloud Config的配置是存储在公共仓库的,我们目前的配置托管在BitBucket上的一个仓库中: 在程序访问仓库获取配置的过程中有两种身份验证模式,一种是基于用户名密码的身份验证,一种是基于SSH Key的身份验证。 常规可选基于用户名密码的身份验证模式,仅需在配置文件中指定u 阅读全文
posted @ 2020-10-15 14:42 猎喵Rachel 阅读(659) 评论(0) 推荐(0)
摘要: 原理 在Horizon平台的设计之初我们就引入了Spring Cloud Bus用于支撑配置的动态刷新。这项技术是基于消息队列服务来实现的,简单来说,Spring Cloud Bus使用一个消息队列服务形成一个消息总线,每个需要获取配置的客户端都将与消息总线连接,获得各自独立的一个Channel,而 阅读全文
posted @ 2020-10-15 14:37 猎喵Rachel 阅读(2175) 评论(0) 推荐(0)