AEM学习笔记(一)

AEM学习笔记(一)

一.什么是AEM

(一)AEM官方定义

  • Adobe Experience Manager is a web-based client-server system for building, managing, and deploying commercial websites and related services.
  • A number of infrastructure-level and application-level functions are combined into a single integrated package.

(二)我理解的AEM

​ AEM是Adobe公司打造的一款CMS(内容管理系统),它主要用于创建,维护和部署大型商业网站及服务,其特点有以下几个:

  • 灵活性高,所见即所得:我之前写过一个小Demo,一个健康网站之类的项目,想要在网站上推送文章,必须要在后台写好存到数据库中,才能在前台显示,而且是以之前写好的板式固定的显示。而AEM则可以直接在网站上的最终页面进行更改,直接就可以看到效果。我将其理解为灵活性和所见即所得的代表。

  • 定制化程度高:可以根据用户的要求开发相关的组件

  • 组件化:大部分CMS厂商都是一次性开发好网站的所有功能,一般以页面为单位。用户只能在管理后台来编辑数据。而AEM具有一定代码逻辑的最小单元是组件。AEM平台本身提供了很多组件,开发者也可以自定义开发组件。

  • 文档型数据库:不同于其他CMS系统使用关系型数据库,AEM采用文档型数据库(JCR)来存储数据,其显著特征是AEM程序本身,以及用户所添加的数据,上传的图片等全部存储在AEM所在的实例中。其优点

    其应用场景主要有:

  • 博客类、资讯类、新闻类门户网站

  • 企业门户网站

  • 企业电商网站

  • 资产管理(可作为一个独立的视频图片等素材管理系统和其它管理系统整合使用)

    大公司选择的理由:

  • 大企业有多重展示渠道(web,小程序,抖音等),他们希望能够使用一个平台来管理内容审批和自动化发布,保证这些渠道能够经常同时被更新。

  • 由于企业通常会有非常多的资料素材,他们往往希望能够实现包括内容创建与素材编辑,包括裁剪和格式更改的自动化。

  • 一些拥有多个品牌或市场的大型企业,他们希望通过唯一一个平台来托管多个品牌和市场的内容。

(三)AEM技术架构

1.AEM三大核心分层和三大核心技术架构图

img

2.AEM三大核心技术

(1)Apache Sling

(2)Java JCR & Apache Jackrabbit

(3)Apache Felix

3.AEM首选渲染层模板语言:HTL

(四)AEM Build命令详解

img

二.AEM开发的准备工作

(一)获取AEM实例

1.从你的老师那获取一个AEM实例和属性文件,具体样子如下图:
在这里插入图片描述
2.在你的D盘下建一个文件夹,取名没有固定的标准,比如我的就叫AEM-workplace,然后在这个文件夹里面再建两个文件夹,分别取名为author和publish,如下图所示:
在这里插入图片描述

3.然后把你在1.中获取到的两个文件分别放入到这两个文件夹中,并按照下图中的方式进行重命名,如图所示:
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YPjvECvr-1630467580126)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\1628576827924.png)]

4.做好上面的步骤之后,接下来分别双击这两个文件夹中的.jar包。它们会自动运行在你的浏览器上,端口号分别是4502(author,也就是创作版)和4503(publish,发行版),登录账号和密码都是admin,这时你会切实的感受到这个实例的两个版本。如下图所示:

在这里插入图片描述
在这里插入图片描述

5.恭喜你非常出色的完成了第一步的工作,有了一个好的开始。那么现在你拥有了一个实例,我们就要想办法在这个实例上进行开发。那么在开发之前我们还有工作要做,跟着我的思路来。请继续阅读**(二)配置开发环境**。

6.AEM核心控制台就是Touch UI Manager,它主要提供的功能有页面的管理(页面的创建和编辑),资产的管理(上传删除图片和视频等素材),另外还提供了一些工具,它是运维人员和AEM管理员的主要控制台。

在这里插入图片描述

在这里插入图片描述

7.http://localhost:4502/crx/de/index.jsp

Crx/de控制台可以认为是数据库管理工具,它主要用来查看JCR的底层数据,包括我们部署到AEM的代码,OOTB( Out-of-the-box是指产品首次被安装时的默认配置 )的代码,以及用户创建的页面,添加的组件等,可以说,整个AEM的数据都可以在这里看到,进行修改,且修改之后会立即生效。另外它支持数据的导入导出,我们可以把一个实例添加的数据进行导出,然后导入到另一个实例当中去。

img

(二)配置开发环境

1.配置JDK

(1)下载一个Jdk1.8以上的版本,解压缩之后去配置环境变量

(2) 右键桌面上“我的电脑”>>“属性”,在弹出的页面上点击“高级系统设置” 。找不到“我的电脑”就打开文件夹,左侧有“此电脑”右键找到“属性”是一样的。

在这里插入图片描述

(3) 在弹出的“系统属性”窗口中“高级”标签页下点击“环境变量”按钮。

在这里插入图片描述

(4) 在弹出的“环境变量”窗口中,点击下方的“新建”按钮,在弹出的“新建系统变量”窗口中,新建一个名为“JAVA_HOME”的环境变量,变量值为Java的安装路径,本人为:D:\project\tool\Java\jdk_9.0.1。如图所示:

在这里插入图片描述
在这里插入图片描述

(5)设置Path环境变量,该变量已经存在,所以在列表中选择Path,点击下方的“编辑”按钮,在弹出的窗口中添加如下信息:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,然后点击“确认”按钮即可。如图所示:

在这里插入图片描述

(6) 和JAVA_HOME一样,新建一个名为“classpath”的环境变量,变量值为:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。如图所示:

在这里插入图片描述

(7)然后就是一路确定点下去,应该就可以配置成功了。你需要打开cmd(win+R打开运行框,输入cmd)进行检验,进入cmd 之后输入java -version,显示如下图信息就表明安装成功了。

在这里插入图片描述
在这里插入图片描述

2.配置Apache Maven

(1)去Apache官网下载maven的压缩包,选择合适位置解压安装

(2)配置环境变量,和上面配置JDK的步骤及操作一致

(3)同样是cmd进行验证,输入mvn -version见效果如下图:

在这里插入图片描述

3.安装Node.js和npm

(三)集成开发环境的配置(Eclipse)

1.安装AEM Developer Tools插件

(1)打开eclipse,点击导航页的help,选择eclipse marketplace,如下图所示:

在这里插入图片描述

(2)搜索AEM Developer Tools,安装:

在这里插入图片描述

2.多模块项目示例的安装

AEM Developer Tools for Eclipse附带一个示例的多模块项目,该项目可帮助您快速掌握Eclipse中项目设置的速度,并且是一些AEM功能的最佳实践指南 。

(1) 在文件 > 新建 > 项目菜单中,浏览到AEM部分,然后选择AEM示例多模块项目。

在这里插入图片描述

(2)单击下一步,可能需要较长时间,因为eclipse要扫描原型目录。

在这里插入图片描述

(3)选择com.adobe.granite.archetypes :sample-project-archetype :(最新版,数字越大越新),然后单击下一页。

在这里插入图片描述

(4)为示例项目填写名称,组id和项目id。还可以选择一些高级属性。
在这里插入图片描述

(5)然后在接下来的步骤配置一个AEM服务器, 这里注意,你的服务器在这里就已经配置了,Eclipse将连接到该服务器。

在这里插入图片描述

(6)单击完成,随即会创建项目结构。

(四)AEM开发流程

1.AEM开发/部署/运维流程

  • BA:业务需求分析师
  • UE:用户体验
  • PM:项目经理
  • QA:测试人员
  • F-end Developer:前端开发
  • FE:前端开发front end
  • BE:后端开发back end
  • OP:运维人员
2.AEM开发都是开发什么

(1)AEM组件

在AEM中,具有最小代码逻辑单元的是组件。一般我们看到的一个AEM页面,它本身并不包含任何代码,而是由若干个组件组成的,它只是一个容器,由用户来确定拖放哪些组件进入这个页面,这个页面的最终渲染效果,功能以及数据的来源均是由每个组件来决定的。

组件开发工作分为三部分:

  • HTML/CSS/JS:这部分代码决定组件该如何显示,如何交互。一般由前端开发人员开发好,之后交给后端人员进行动态渲染。
  • Dialog:AEM的特点之一就是给每个组件提供了可供运维人员修改和编辑内容的交互界面。这就是Dialog,一般由后台开发根据业务需求和UI设计来决定暴露哪些配置项给用户。
  • Sling Model:对于一个组件来说,有时候只开发HTML和Dialog不能够满足需求,比如该组件要和其他系统交互获得数据,或者需要使用Java API操作 JCR数据,这时候就需要开发一个java开发类(Sling model)来处理和封装数据,然后在HTML中使用这些数据。

img

(2)开发模板

我们可以在控制台中通过通用模板新建页面,然后将开发好的组件插入其中,但是实际开发中,我们要实现一些统一的HTML样式,和JS,CSS依赖等。这就需要我们开发具有自己代码逻辑的自定义模板。

(3)开发Servlet

由于很多功能我们可能采用有前端代码Ajax调用后天接口来对视图进行渲染,我们需要使用Sling Servlet来暴露webservice给前端JS使用。

(4)开发workflow

它方便运维人员定义和配置工作流,来实现诸如审批流,自动发布,灾难备份等功能。一般开发需要根据需求,采用内置步骤或者自己开发的步骤定义一个workflow model。

更多AEM知识请关注AEM学习笔记(二),有不懂的地方也可以私信我,我们一起讨论解决~~~~

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java领域优质男神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值