学习准备
软件准备
java1.8安装相关教程 https://blog.csdn.net/Deng872347348/article/details/126953093
注意这里一定要用Java8运行Mule项目,笔者之前使用Java7在端口的异常和项目的编译中卡了一段时间,直到安装Java8解决了相关异常。
eclipse安装相关教程 https://blog.csdn.net/m0_52049033/article/details/123412645
MySQL安装相关教程 https://blog.csdn.net/qq_59636442/article/details/123058454
postman安装相关教程 https://blog.csdn.net/Daisy74RJ/article/details/123798431
第一章:Hello Mulesoft
1、开发环境之 Anypoint Studio
进入下载网址https://www.mulesoft.com/lp/dl/anypoint-mule-studio之后填写相关信息即可完成下载,注意版本是Anypoint Studio 7 and Mule 4,这里官方提供30天的免费使用。
在填写完成相关信息之后,官方会发送一个下载地址进入你的邮箱,这个时候我们打开邮箱点击下载即可,压缩包大约2个G大小,下载完成之后解压即可打开。
点击打开AnyPointStudio开启Mulesoft编程之旅吧。
2、注册Mulesoft账号与考试信息
因为考试时要进行身份验证,需要确保输入的姓名和你提供的身份证明上的姓名一致。
为了获取免费的考试资格(或者你可以花费250美元购买考试资格),必须将所有的资源全部看完(课程左边出现√)。
3、创建第一个Mulesoft项目
第一次打开时,由于之前没有建立Mulesoft项目,你可以直接在左侧工作区直接快捷建立Mule项目,笔者此时的Mule最新版本为4.4,随后在这里直接输入项目名称[helloMule],点击[finish]即可完成项目创建。
在资源管理器中,点击打开项目默认创建的[hellomule.xml]文件,在右侧可以看到Mule的控件管理。
4、添加Mule控件
我们首先需要添加一个Listen控件来监听外部的请求。
默认情况下控件管理区域会直接出现Listen,当然没有也没关系,在搜索栏中输入Listen选择HTTP>Listen即可。
将Listen控件拖动进入画布,点击控件并点击+号,即可进入新建Listen的配置页面。
这里为了避免端口冲突我一般选用的9999号之后的端口,输入恰当端口后点击测试按钮,系统提示测试成功后完成端口选择。
这里笔者遇到了一个异常。
经过排查是java版本错误,将Java版本换成jdk8之后再重启整个项目,端口测试可正常进行。
当然端口号冲突时,除了改变Listen监听的端口,也可以尝试去关闭对应端口原有程序,相关教程如下:https://blog.csdn.net/Lance_welcome/article/details/107894249。
测试完成之后修改下方General的路径,这里的路径类似于网络开发的监听路径,这里我们输入[/hello]。
监听设置完成之后,我们再放入Set Payload控件处理监听,此处我们可以看到下方的Value中是一个函数名,为了简单演示,点击函数图像,将结果切换成字符串。
5、运行、测试
自此第一个项目完成编写,和Eclipse运行项目类似,右键启动项目。
项目启动完成,在浏览器中输入我们刚刚设置的路径:http://localhost:9999/hello,可以看到返回的结果是我们刚刚输入的字符串"hello",程序执行正确。
至此,你已经成功克服重重困难,成功完成了第一个Mule程序的编写,接下来开始正式进入Mule的应用与实践。
第二章:连接数据库(MySQL)
1、准备MySQL
这里本人使用的是MySQL Workbench工具进行连接,直接输入用户名、密码进行连接即可。考虑到数据库的安全性,使用命令创建一个普通用户进行本次试验,创建代码如下,其中mule_test为我提前建好的一个数据库。
create user ‘user1’@‘localhost’ identified by ‘xzw123456’;
grant all privileges on mule_test.* to ‘user1’@‘localhost’ with grant option;
建立一个测试的表并向表中添加部分数据,这里我提供一些SQL语句可以直接使用。
use mule_test;
CREATE TABLE Student (
student_id INT NOT NULL,
name VARCHAR(50) NOT NULL,
gender VARCHAR(10) NOT NULL,
age INT NOT NULL,
class VARCHAR(50) NOT NULL,
PRIMARY KEY (student_id)
);
INSERT INTO Student (student_id, name, gender, age, class)
VALUES (1001, ‘张三’, ‘男’, 20, ‘计算机科学与技术’),
(1002, ‘李四’, ‘女’, 21, ‘软件工程’),
(1003, ‘王五’, ‘男’, 19, ‘信息管理与信息系统’),
(1004, ‘赵六’, ‘女’, 20, ‘计算机科学与技术’),
(1005, ‘周七’, ‘男’, 22, ‘网络工程’);
MySQL端准备完成,接下来在Mulesoft中进行操作。
2、Mulesoft连接MySQL
类似于第一章操作新建一个项目添加Listen,随后再添加一个Select,此控件不一定直接有,可以通过搜索找到,添加Select是为了连接数据库,点击Select编辑连接。
先选择MySQL连接,然后根据他的提示下载需要的MySQL JDBC Driver,再填写相关的主机、端口、用户密码、数据库名称信息,最后测试一下连接,连接正常则配置完成。当然你也可以使用其他数据库,只要配置好自己的连接信息即可。
此处出现此类异常需要检查自己是否已经配置上述的jar包。
连接配置完成后还需要编辑查询语句,这里我们查询Student表中的全部数据:select * from Student。
3、映射表中数据
添加使用Transform Message控件,点击Transform Message可以看到表中的所有字段已经被映射。
将output Payload修改为下列内容,以确保有效输出内容,如果java不改为json则返回的对象是java的Object无法有效显示。
此时整体任务已经被基本完成,我们运行项目并打开PostMan测试一下访问结果,PostMan中访问地址为:
http://localhost:9999/student
成功显示出我们在数据库中添加的学生信息,mule查询数据库中数据完成。这意味着之后我们可以通过mule很方便的从数据库中调取到我们需要的数据的JSON格式。
4、自定义输出格式
点击Flow本身,不要点击任何控件,就会出现对Flow的整体配置,点击Metaadata标签,然后点击Add metadata按钮,选择输出的文件格式。
点击编辑按钮后进入编辑界面,点击add后随意输入一个id,在Type中选择JSON输出格式,随后选择Example并导入官方提供的JSON文档,选择自己需要的属性输出。
将需要输出的字段从左向右拖拽,即可完成对应字段的匹配,从而实现自定义输出格式。