自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

PJ老文的博客

欢迎大家一起学习!!

  • 博客(40)
  • 收藏
  • 关注

原创 Docker入门篇

Docker 入门  这些天了解了现在流行的容器技术Docker,主要是参考这个系列的博客http://www.cnblogs.com/CloudMan6/tag/Docker/还有Docker中文网http://www.docker.org.cn  本篇博客主要讲一些命令的操作,至于原理性的东西就不多讲了,这些在网上都可以找到,本篇博客主要是记录一些命令的操作,用于以后用到可以方便的查到。命令是用到的时候再查的,不过原理性的概念还是要了解的,docker这个东西使用的时候不难,没有多少要学...

2020-05-17 16:52:41 204

原创 物联网-开源的MINIO云存储

1:前言:开篇的时候我们聊聊,上次我说道,要做文件双备份,毕竟是商业用途,在公司本地的物理机要备份的!那么我寻思了很久,最终选择了MINIO,很多小伙子其实很少听过这个东西,下面我简单介绍下,深入仔细的可以去度娘下:MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等MinIo可以作为公司内部的

2020-05-14 18:58:13 1257

原创 物联网-阿里云存储对象OSS

1.本人前一段时间由于物联网开发,要远程控制机器设备进行升级,这个时候就要考虑了,设备和服务端之间如果带宽和服务端IO得情况,一般的大文件,比如超过100M文件都不建议走自己得服务端,一般用第三方客户端。本人在存储小文件,比如图片一些文件的时候会用到MongDB,这个是一个高性能的存储小文件的非关系性数据,后面我会详细介绍他的用法,现在主要讲一个云存储方案,用阿里云提供的OOS.这样子我们可以保证在服务端上传完文件后,客户端就自己在阿里云上面拉去文件了,这一步少了与服务端的交互,就为服务大大解决了带宽或者I

2020-05-13 23:09:16 634

原创 .Springboot+mqtt物联网开发

1.开篇聊聊,本人之前从事通信软件开发,对高并发和限流等有一定的实战,不过最近做物联网项目,这里聊聊怎么用mqtt进行双向通信,后面大家对通信开发有兴趣的也可以关注下本人博客!!!进入主题:目前市面上有几种mqtt的开源项目,本人觉得emqtt这款开源的项目好用,是EMQTT,Erlang MQTT消息服务器简称EMQTT。EMQTT是采用Erlang语言开发,全面支持...

2020-03-25 14:31:09 7516 2

原创 如何使用 JavaScript Remoting

JavaScript Remoting 是什么?JavaScript Remoting 是一个可以用来做异步处理的工具,开发者可以用它从 Visualforce page 到 Apex controller 做 AJAX 请求。JavaScript remoting 允许做异步事件处理的时候,而不需要加载整个页面。另外,使用 JavaScript remoting 还能帮助我们减轻 vi...

2019-03-22 15:19:29 316 1

原创 Salesforce Force.com Site 集成微信公众平台 (七) OAuth 2.0

OAuth 是一个开放协议,用户允许第三方应用以安全且标准的方式获取该用户在某一网站上存储的私密资源,而无须将用户名和密码提供给第三方应用。接下来将介绍 OAuth 协议在微信里的具体实现。OAuth 2.0 协议介绍OAuth 2.0 是 OAuth 协议的下一版本,但不向后兼容 OAuth 1.0。 OAuth 2.0 关注客户端开发者的简易性,同时为 Web 应用,桌面应用和手机,起...

2019-03-22 14:44:08 739

原创 Salesforce Force.com Site 集成微信公众平台 (六) 客服接口

这一章我们将介绍在 Salesforce 中如何处理微信客服接口。当用户主动发消息到微信公众账号的时候,包括发送信息、点击自定义菜单click事件、订阅事件、扫描二维码事件、支付成功事件、用户维权,微信将会把消息数据推送给开发者,开发者在一段时间内(目前为48小时)可以调用客服消息接口,通过POST方法把JSON数据包发送消息给普通用户,在48小时内不限制发送次数。此接口主要用于客服等有人...

2019-03-22 11:47:17 527

原创 Salesforce Force.com Site 集成微信公众平台 (五) 语音识别

这一章我们讲一下微信的语音识别处理功能,微信公众账号通过微信认证后可以获得语音识别接口,开启语音识别功能以后,用户每次发送语音给微信账号时,微信会在推送的语音消息 XML 数据包中,增加一个Recognition字段,该字段为语音识别出的文本内容。下面是开启语音识别后的 XML 数据包示例:<xml> <ToUserName><![CDATA[toUse...

2019-03-22 11:43:48 244

原创 Salesforce Force.com Site 集成微信公众平台 (四) 菜单处理

这一篇我们介绍微信菜单和 Salesforce 的集成。目前自定义菜单最多包括三个一级菜单,每个一级菜单最多包含五个二级菜单。一级菜单最多4个汉字,二级菜单最多8个汉字,多出来的部分会以“…”代替。请注意,创建自定义菜单后,由于微信客户端缓存,需要一定时间才能在微信客户端展现出来,最快捷的方式是重新关注微信公众账号,这样马上就能看到自定义菜单。自定义菜单接口可实现两种类型的按钮: cli...

2019-03-22 11:30:12 495

原创 Salesforce Force.com Site 集成微信公众平台 (三) 图文消息处理

这一篇我们以图文消息为例,来给大家讲解在 Salesforce 中是如何发送和接收的。首先我们在 Salesforce 中创建一个类用来保存用户发送过来的消息。这个类我们叫它 ReceiveMsg ,代码如下public class ReceiveMsg { public String toUserName; public String fromUserName; ...

2019-03-22 11:28:42 566

原创 Salesforce Force.com Site 集成微信公众平台 (二) 接收与发送信息类型

发送信息类型目前公众账号向普通用户推送三种格式的消息:文本、图文、音乐。其中图文消息包括单条图文消息和多条图文消息。关于文本消息我们已经在上一篇有所了解,没有了解的可以查看Salesforce Force.com Site 集成微信公众平台 (二) 文本消息处理,这里我们将仅仅介绍图文消息和音乐消息。图文消息格式单条发送格式<xml> <ToUse...

2019-03-22 11:26:54 550 1

原创 Salesforce Force.com Site 集成微信公众平台 文本消息处理

首先我们来介绍一下信息的发送流程。当用户向微信发送信息时,微信公众平台服务器接收到消息后,检查当前公众帐号是否开启了开发者模式。如果开发者模式打开了,微信服务器会以 POST 的方式将 XML 数据包发送到我们在微信后台配置的 URL 上,也就是 Salesforce 系统中,这样我们就可以在 Apex 代码中处理这些消息了。微信的消息类型有文本信息、图片信息、语音信息、视频信息、地理位置信息...

2019-03-22 11:24:15 684 1

原创 salesforce中对传输的数据进行加密

项目简单背景:假设有两个sObject,分别是A和B。B是A的子sobject。表单中元素显示的是B的相关字段,这些字段A中也全部包含。表单中包含了9个元素,点击提交的时候需要分成4组校验,每一组中只要有一个元素修改过,此组元素就需要全部按照特有的校验规则校验。此处的修改过代表输入框中的内容和A中的内容不一致,则视为修改,并且表单中2组和3组有两个字段涉及到用户隐私,不允许通过&lt;inpu...

2019-03-12 17:24:54 499

原创 SalesForce开发中的lighting零基础入门第一篇

!.lighting的官网文档Api链接:https://resources.docs.salesforce.com/206/latest/en-us/sfdc/pdf/lightning_experience_guide.pdf(总体来说,Classic的页面反应速度相对于lighting来说更加快!!个人体验)2.Lightning相对Classic,除了在UI方面上变得更加用户友好外...

2019-03-05 14:24:25 1560

原创 异步编程的Future

先聊聊线程池的提交方式谈到 Future 的时候,我们基本上就会想到线程池,想到它的几种提交方式。先是最简单的,execute 方式提交,不关心返回值的,直接往线程池里面扔任务就完事:publicclassJDKThreadPoolExecutorTest{publicstaticvoidmain(String[] args) throws Exception{ThreadPoolExecutor executor =newThreadPo...

2020-11-26 11:52:45 310

原创 MyBatis 千万数据表,快速分页

基本概念流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果。流式查询的好处是能够降低内存使用。如果没有流式查询,我们想要从数据库取 1000 万条记录而又没有足够的内存时,就不得不分页查询,而分页查询效率取决于表设计,如果设计的不好,就无法执行高效的分页查询。因此流式查询是一个数据库访问框架必须具备的功能。流式查询的过程当中,数据库连接是保持打开状态的,因此要注意的是:执行一个流式查询后,数据库访问框架就不负责关闭数据库连接了,需要应用在取完数据后自己关.

2020-11-18 22:19:55 444

原创 如何决定使用 HashMap 还是 TreeMap

TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。HashMap<K,V>的Key值实现散列hashCode(),分布是散列的、均匀的,不支持排序;数据结构主要是桶(数组),链表或红黑树。适用于在Map中插入、删除和定位元素。结论如果你需要得到一个有序的结果时就应该使用TreeMap(因为Hash

2020-11-18 21:59:13 164

原创 谈谈,如何设计一个通用的权限管理系统

一个系统,如果没有安全控制,是十分危险的,一般安全控制包括身份认证和权限管理。用户访问时,首先需要查看此用户是否是合法用户,然后检查此用户可以对那些资源进行何种操作,最终做到安全访问。身份认证的方式有很多种,最简单的就是直接用户名密码,还有业内比较通用的方式CAS方式登陆等;授权的框架也很多,比如OAuth2,Shiro等。本文首先会讲解一下CAS的概念,以及基于角色的权限管理模型(RBAC)的概念,接着进行数据表的设计,最后讲解如何利用Shiro进行权限管理。一、CAS身份认证集中式认证服

2020-11-15 22:44:53 634

原创 HashMap 经典详解

什么是HashMap?HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。文字描述永远要配上图才能更好的讲解数据结构,HashMa

2020-11-14 17:11:53 115

原创 Java 中常用数据结构执行过程及原理

LinkedList ArrayList Stack 后缀表达式 中缀转后缀 计算后缀表达 队列 HashMap LinkedHashMap 最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程.主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向列表不再是回环的.HashMap中...

2020-11-14 15:44:12 125

原创 开放 HTTP API 接口签名验证!

AccessKey&SecretKey (开放平台) 请求身份 防止篡改 重放攻击 实现 Token&AppKey(APP) Token身份验证 Token+AppKey签名验证 实现 后续请求 接口安全问题 请求身份是否合法? 请求参数是否被篡改? 请求是否唯一? AccessKey&SecretKey...

2020-11-14 15:40:59 561

原创 线上故障排查技巧

线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。CPU一般来讲我们首先会排查cpu方面的问题。cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的,可以使.

2020-11-14 15:39:25 387

原创 聊一聊微服务组件区别

1、创建一个订单之后,如果用户立刻支付了这个订单,我们需要将订单状态更新为“已支付”2、扣减相应的商品库存3、通知仓储中心,进行发货4、给用户的这次购物增加相应的积分如上,微服务的应用场景和核心竞争力:降低耦合:每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。独立部署:由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。当某个微服务发生变更时无需编译..

2020-11-08 21:59:21 1661 1

原创 Spring 中的 bean 是线程安全的吗?

结论:不是线程安全的Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。Spring 的 bean 作用域(scope)类型 singleton:单例,默认作用域。 prototype:原型,每次创建一个新对象。 request:请求,每次Http请求创建一个新对象,适用于WebApplicationContext环境下。

2020-11-08 21:40:13 141

原创 Salesforce Force.com Site 集成微信公众平台 (八) 生成二维码

为了满足市场用户推广的渠道,公众平台提供了生成带二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。目前有两种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为30天(即2592000秒)后过期,但能够生成较多数量,后者无过期时间,数量较少(目前为最多10万个)。两种二维码分别适用于账号绑定、用户来源统计等场景。扫描二维码推送事件...

2019-03-22 15:33:50 518

原创 Salesforce中自定义的线性表浅谈

一.线性表的链形结构--链表使用顺序存储结构好处为实现方式使用数组方式,顺序是固定的。所以查询某个位置的元素特别容易,时间复杂度为O(1),但是当增加或者删除时,会需要将操作元素后面的元素整体向左或者向右平移。时间复杂度为O(n)。所以当线性表查询操作多于增删操作,优先使用顺序存储结构的线性表;当线性表增删操作多于查询操作,则优先使用链式存储结构的线性表。线性表的链式存储结构的特点是用一组...

2019-03-22 10:57:50 205

原创 salesforce lightning 事件(component events)简单介绍

lightning component基于事件驱动模型来处理用户界面的交互。这种事件驱动模型和js的事件驱动模型也很相似,可以简单的理解成四部分:1.事件源:产生事件的地方,可以是页面中的输入框,按钮等等;2.事件: 点击,失去焦点,初始化等等;3.事件对象:当在事件源触发某个事件的时候,一般会产生一个事件对象,记录着事件的事件源相关信息以及相关的事件信息;4.事件处理程序(Eve...

2019-03-21 10:12:05 1003

原创 Salesforce中的ligthing的组件框架介绍

一. Controller js介绍因为component不允许写任何的js,即使类似onclick="alert(xxx);"这种js也是被禁止的,所以controller js部分作用是至关重要的。他管理着Component中所有的事件驱动操作。这里假设我们在'showMyInfo' componet中有一个按钮名字是'Button1',绑定了一个'onclick'事件,onclick...

2019-03-20 10:24:17 1083

转载 Salesforce中jquery ui中的autoComplete实现自动联想

项目中,我们有时候会需要实现自动联想功能,比如我们想输入用户或者联系人名称,去联想出系统中有的相关的用户和联系人,当点击以后获取相关的邮箱或者其他信息等等。这种情况下可以使用jquery ui中的autoComplete实现。此篇需求为在输入框中输入检索词对数据库中User表和Contact表的Name字段进行检索,符合条件的放在联想列表中,当用户选择相应的名称后,输入框中显示此名称对应的邮箱...

2019-03-15 16:48:51 328

转载 Salesforce中apex:actionRegion和apex:actionSupport

我们在开发中,很难会遇见不提交表单的情况。常用的apex:commandButton,apex:commandLink,apex:actionFunction,apex:actionSupport。他们进行操作的时候,会将整个表单提交。但是我们很多时候的需求,只是希望提交一部分内容,而不是全部。这个时候,我们就需要用到apex:actionRegion.一.apex:actionRegion...

2019-03-15 15:58:49 327

原创 Salesforce中Comparable比较Object的列表数据自定义排序

项目中通常有些需求为需要将某个sObject的数据列表按照某种规则排序显示到前台页面上,但是list上面的sort远远满足不了复杂的功能,此种情况需要自定义比较两个object大小的方法,所以需要创建Compare相关的类实现Comparable接口。需求:实现Goods__c列表排序,GoodsBrand__c为华为的按照价格升序排序,GoodsBrand__c为联想的按照价格降序排列。...

2019-03-14 17:10:18 292

转载 Salesforce中测试类分配测试User

TestUserHelper类如下: 1 public class TestUserHelper { 2 public static User createUserByPermission(String permissionSetName) { 3 Profile pfl = [select id from profile where name='Syste...

2019-03-13 16:24:25 626

原创 Salesforce自定义封装类分页Pagination

我们知道,salesforce中系统标准列表页面提供了相应的分页功能,如果要使用其分页功能,可以访问http://www.cnblogs.com/zero-zyq/p/5343287.html查看相关实现。现在很多的sfdc项目都是重构页面进行开发,所以很多系统分装的功能用不上,但是很多确实很常见的功能,比如分页,这时候就有必要自己封装一套翻页基类,子类继承父类并实现相关方法以后,前台通过封装...

2019-03-13 14:17:59 354

原创 Salesforce中动态显示审批过程

项目中,申请者申请某些事项以后,常常需要在申请列表中查看当前申请的记录所在的审批状态,动态美观的显示状态可以使UI更符合客户要求,比如下面这样。以Goods__c表为例,申请者申请的一些采购以前需要得到批准,申请者列表需要显示所有的申请记录,状态(Status__c)有以下情况:  直线经理审批;  部门经理审批;  总经理审批;  审批通过。实现上述方式主要实现...

2019-03-12 16:45:35 611

原创 Salesforce中Approval(审批流)

我们都知道,当一条记录进入审批流程以后会自动加锁,apex提供Approval类的lock和unlock方法可以让我们使用代码对记录进行加锁和解锁。项目中遇到一个需求,需要当某种情况下对记录进行先解锁,然后update相关数据,然后再加锁。此种方式不影响审批流程。主要大概代码如下所示 1 if(Approval.isLocked(xxApproval)) { 2 ...

2019-03-12 14:59:38 1584

原创 Salesforce文件的下载和上传浅谈

项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文件上传到Document对象中。一.文件上传功能apex代码 1 public with sharing class FileUploadUsedTransientControll...

2019-03-12 11:58:43 2382

原创 Saleforce测试类规范化

因为Salesforce规定,Trigger的触发的测试类Test覆盖率要达到100%,而Apex类需要达到70%以上。在测试类中用 : @testSetup private static void setupData() { String orgId = UserInfo.getOrganizationId(); User u1 = crea...

2019-03-12 11:16:49 374

转载 Salesforce基础运算取余(和java的区别)

工作中遇到一个简单的小问题,判断两个数是否整除,如果不整除,获取相关的余数。习惯java的我毫不犹豫的写下了代码public Boolean isDivisibility(Integer dividend,Integer divider) { return dividend % divider == 0; }提交代码发现竟然提交不上??后来查看API发现apex中...

2019-03-12 11:04:55 557

原创 静态化技术freemarker

目前企业中,主要用Feeemarker做静态页面或者页面的展示,FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。使用freemarker需要用到的jar包把下载到的jar包(freemarker...

2018-05-22 19:50:21 181

原创 JSTL使用(三大框架和各页面良好显示)

我们学习jstl标签库的核心(自己网上下载jar包)内容是core:核心标签库,我们学习的重点:使用taglib指令导入标签库:&lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %&gt; l prefix="c":指定标签库的前缀,这个前缀可以随便给值,但大家都会在使用core标签库时指定前缀为c;2 uri="http:/...

2018-05-22 12:38:02 567

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除