课程章节介绍
同学们,我们来看这一页内容,它介绍了好几个很有用的Apex注解,以及一个非常重要的安全提醒。我们依次来理解一下,一定要认真听哦。
首先,第一个注解是 `@paceDeliverable`。这个名字你们可能觉得有点奇怪,它的作用其实很简单:就是当你在一个包里写了一个公共的Apex类,想让它被同一个命名空间下的其他包也能使用的时候,就可以加上这个注解。这样就能跨包共享代码了,知道吗?
然后我们看 `@ReadOnly` 注解。这个注解很强大,主要用在查询数据的时候。通常Salesforce对一个事务能查询的行数是有限制的,但如果你用 `@ReadOnly`,它就把这个限制放宽到最多可以查一百万行。不过有个代价,就是它会阻止所有的写操作,也就是TLR——事务里的DML操作都不能做。所以它很适合用来做大批量的只读报表查询。
接着是 `@RemoteAction`。这个注解是给Visualforce页面用的,它能让你通过JavaScript远程调用Apex里的方法。比如说,你在页面上点个按钮,页面不用刷新,直接就能调用后台的方法去获取数据或者做操作。但注意哦,被 `@RemoteAction` 标注的方法必须是静态的,而且访问修饰符必须是 `global` 或 `public`。这样才行。
最后,这里有一个警告,非常关键!它说:如果你在一个页面里添加了控制器或者控制器扩展,那整个Apex类里面所有的 `@RemoteAction` 方法,哪怕你没有在页面上用到它们,也会全部暴露给这个页面。这意味着,如果有人知道方法名,他就能尝试通过JavaScript调用那些你可能觉得“没用就不会有风险”的方法。所以一定要小心,不要在一个控制器类里乱写 `@RemoteAction` 方法,一定要只放那些页面真正需要的,并且做好权限检查。
好了,这一页的知识点非常实用,大家记住了吗?后面我们会结合实际例子更深入地讲解。现在先理解这些概念就好。
关键词
Apex
Salesforce
Developer Guide