`

ServiceContext Pattern

阅读更多
The Service Context is an object that contains context information about a given API call. By using this pattern it is possible to consolidate many different methods with different sets of optional parameters into a single, easier to use method. It also aggregates information necessary for transversal features such as permissioning, tagging, categorization, etc.

Fields
Here are the most significant fields of the ServiceContext object as of v5.2:

boolean addCommunityPermissions;
boolean addGuestPermissions;
Map<String, Serializable> attributes;
String communityPermissions;
long companyId;
Map<String, Serializable> expandoBridgeAttributes;
String guestPermissions;
String languageId;
String layoutURL;
String pathMain;
String portalURL;
PortletPreferencesIds portletPreferencesIds;
long scopeGroupId;
String tagsCategories;
String tagsEntries;
String userDisplayURL;
long plid;
long userId;
}}}
Usage
All of the fields of this object are optional, although the services that store any type of content will require you to specify at least the scopeGroupId. Here is a simple example of how to create a ServiceContext instance and pass it to a service API:

  ServiceContext serviceContext = new ServiceContext();
  serviceContext.setScopeGroupId(myGroupId);

  BlogsEntryServiceUtil.addEntry(...., serviceContext);
If you are invoking the service from a servlet, an struts action or any other frontend class which has access to the portletRequest, you can use a utility method that will create the ServiceContext object and fill it with all the necessary values automatically. In that case the above example could be rewritten as follows:

  ServiceContext serviceContext = ServiceContextFactory.getInstance(BlogsEntry.class.getName(), portletRequest);

  BlogsEntryServiceUtil.addEntry(...., serviceContext);
分享到:
评论

相关推荐

    运用BeanShell脚本语言进行逻辑判断定义.pdf

    ServiceContext serviceContext = new ServiceContext(); serviceContext.setAttribute(ServiceContext.EVENT_ID, "123456"); i.eval("print(person.getPname());"); // 输出结果 i.eval("if (serviceContext....

    几种数据库的大数据批量插入

    public ServiceContext ServiceContext { get; set; } public void Insert(DataTable dataTable, int batchSize = 10000) { Checker.ArgumentNull(dataTable, "dataTable"); if (dataTable.Rows.Count == 0) ...

    从零开始手写 dubbo rpc 框架-12-generic泛化调用.docx

    ServiceContext 是一个上下文对象,提供了服务相关的信息,该对象不应该被修改,应该和指定的服务紧密关联。 RemoteInvokeService RemoteInvokeService 是一个远程调用服务,提供了 RPC 调用机制。该服务用于 ...

    JavaWeb框架Wint.zip

    内置serviceContext服务框架,所有的服务都基于此实现,用户可以自定义自己的服务。 spring友好,如果用户想使用spring,可以无缝整合,不需要任何配置。 内置web开发需要的几乎所有功能:表单处理,url处理,内置...

    proguard 文档

    例如,`-keep class oms.miracle.mobiletv.broadcast.ServiceContext { *; }` 这行命令会保护 ServiceContext 类及其所有成员不被 ProGuard 处理。 ProGuard 的主要参数包括: - `-include {filename}`:从指定...

    dwr技术及配置方案 大家一看便知

    &lt;url-pattern&gt;/dwr/*&lt;/url-pattern&gt; ``` 这里配置了DWR的Servlet,并指定了几个初始化参数,如`debug`开启调试模式等。 ##### 4. 配置serviceContext.xml 如果使用Spring框架管理Bean,则还需要在Spring的配置...

    SharePoint 2013 计时器任务 Demo

    public CustomTimerJob(string jobName, SPServiceContext serviceContext, SPWebApplication webApp, Guid jobId, SPJobLockType lockType) : base(jobName, serviceContext, webApp, jobId, lockType) { } ...

    ApplicationContext及它的3种实现

    String[] locations = {"D:/project/applicationContext.xml", "D:/project/serviceContext.xml"}; ApplicationContext ctx = new FileSystemXmlApplicationContext(locations); ``` 3. **`...

    c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)

    var tableName = DbUtility.FormatByQuote(ServiceContext.Database.Provider.GetService(), dataTable.TableName); using (var bulk = new SqlBulkCopy(connection, SqlBulkCopyOptions.KeepIdentity, null) { ...

    用timer job 实现文档下载次数

    public DocumentDownloadCountJob(SPWebApplication webApp, string jobName, SPServiceContext serviceContext) : base(jobName, webApp, serviceContext, SPJobLockType.None) { // 设置属性... } } ``` 2. ...

    Webx介绍_PDF

    - **Webx2应用的Context结构**:在Webx2中,主要采用了`ServiceContext`作为核心,其中包括了多个`SubInstance`实例,每个实例都有自己的`SpringContext`。 - **Webx3应用的Context结构**:Webx3中取消了`...

    IOMG.Umbraco.StandaloneServices:允许访问 Umbraco 之外的 Umbraco 服务的库

    在您的代码中,创建一个新的 ServiceAccess 对象,它充当 Umbraco ServiceContext 的包装器: var Access = new ServiceAccess(); var ContentPage = Access.Services.ContentService.GetById(1000);

    Umbraco.Elasticsearch:将Elasticsearch集成为Umbraco v7.5 +的搜索平台

    要使用它,应具有以下知识: 在Umbraco的Umbraco CMS中开发自定义代码和逻辑.Elasticsearch是一个以代码为中心的库如何使用IContent , IMedia和ServiceContext服务以编程方式从Umbraco提取节点属性如何使用 ...

    fluxcd-logconvert

    { "severity" : "DEBUG" , "timestamp" : "2021-03-06T21:14:44.870397172Z" , "message" : "" , "serviceContext" : { "service" : "fluxcd" } , "somefield" : "foo" } // this error { "err" : "somet

    Springside技术参考手册

    在SpringSide 2中,每创建一个新的Dao类,都需要在serviceContext.xml中手动添加相应配置,而在SpringSide 3中,自动扫描功能使得这一过程自动化,大大提高了开发效率。 总的来说,SpringSide 3.3.2技术参考手册...

    axis2新手教程

    为了在服务中使用会话信息,可以通过`MessageContext`和`ServiceContext`对象来存储和检索会话数据。这些对象提供了get和set方法来获取和设置属性。 ##### 2. 配置 `scope` 属性 在`service.xml`文件中,可以通过...

    创建用户控件以在SharePoint 2013网站中显示用户配置文件图片

    UserProfileManager profileManager = new UserProfileManager(serviceContext); string currentLoginName = SPContext.Current.Web.CurrentUser.LoginName; UserProfile userProfile = profileManager....

    windows源码分析9-中断处理篇.doc

    ISR是响应中断的实际代码,而ServiceContext则传递给ISR的特定上下文信息。 总结来说,Windows中断处理涉及IDT的管理和中断服务例程的注册,通过精心设计的中断处理机制,系统能够有效地响应各种硬件和软件中断事件...

    liferay JSON Web服务接口调用示例.docx

    这里,除了基本的个人信息,还包含了服务上下文(`serviceContext`),例如资产标签名(`assetTagNames`)。当服务执行完成后,回调函数会输出返回的对象,通常包含新用户的ID。 2. **在Java中通过URL调用JSON Web...

Global site tag (gtag.js) - Google Analytics