大家好,今天来为大家解答FreeJava 的使用方法(二)获得与安装 javalibrary free这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
基于Fis3和Idtc的头条前端开发套件安装及使用向导
基于Fis3和Idtc的头条前端开发套件安装及使用向导
以下简称
背景
Fis3是一款百度开发的前端构建工具(http://fis.baidu.com/),头条前端之前的开发模式基于Fis2,大体上基本的构建需求都可以满足。但是时间久了,一些开发方面的问题就会暴露出来,比如:多个模块之间不能共享通用资源、Fis的本地调试Server太过简陋、没法Mock数据、太依赖远程开发机进行新功能的开发和调试等问题。为了解决这些问题,所以在Fis3的基础上封装出了Fis3-wrapper-common模块,以Fis3作为依赖,提供附加功能。
同时,为了弥补Fis3工具在本地调试和Mock数据方面的缺陷,本地Webserver调试器采用了Idtc(https://github.com/guananddu/idt/tree/idt4none-contextify)作为辅助开发工具。Idtc出彩的地方在于它完善的假数据Mock功能,它提供了针对后端模板引擎,例如:Django Template、Java Velocity、Java Freemarker、PHP Smarty的解析和假数据填充功能。Idtc不仅能针对后端模板进行Mock数据,还能针对普通的Ajax请求进行Mock数据,真正地提高了前端人员的开发效率,并且使得前端开发完全脱离了后端的服务环境,前端人员只需关注接口数据即可。更加详细的介绍请往下看~
设计目标
-
解决跨站资源依赖
-
提供完善的本地开发(脱离任何后端环境的开发)、假数据Mock的功能
-
完全地兼容Fis3原生命令(例如,)
-
集成Fis3常用插件,省去手动安装
-
提供对语法、标准规范()的支持
-
提供对前端模板引擎的内置支持(使用,仍旧采用*.tmpl扩展名作为模板文件)
配置预览
解决跨站资源依赖
提供完善的本地开发(脱离任何后端环境的开发)、假数据Mock的功能
完全地兼容Fis3原生命令(例如watch,remote push)
本地开发+watch:
fis3b release local -d ../output –watch
远程发布:
集成Fis3常用插件,省去手动安装
提供对语法、标准规范()的支持
提供对前端模板引擎的内置支持
套件安装
保证和的环境是ok的,使用安装如下包:
npm install -g fis3-wrapper-common
npm install -g idtc
使用安装如下包(用来解析本地调试下的):
easy_install \\”Django==1.7\\”
安装完毕以后:
-
所对应的命令是:
-
所对应的命令是:
如下:
fis3b -H
命令可查看的版本号。除去,,三个命令外,其他的命令被自动转向原生命令:
fis3b -v
如上:可以通过来查看内置fis3的版本号。同理,可以通过或者来获取fis3的内置帮助:
fis3b –help
命令查看:
中,我们只需关注的功能即可,其他命令可以忽略掉:
我们常用的命令即是:
idtc ws start
示例项目结构
设置如下示例项目,供大家参考:
特性详解
以下的特性详解,均以示例项目为范本,为主项目,其他三个为辅助项目
解决跨站资源依赖
(下面简称)对fis3进行了包装,整体构建过程是这样的:
① 执行逻辑,读取配置
② 根据依赖配置,将依赖的资源至当前项目的根目录中,并且填充文件,防止误提交
③ 调起开始根据里面的配置进行编译及打包
④ 打包完毕后,执行逻辑,清理当前项目中的依赖项,防止误提交
⑤ 如果采用了功能,则监听信号,当终端时,自动调用逻辑,与第④步骤相同
来看看源码即可了然:
fwc
保持了fis3
中的watch
功能
先来确定下项目定义的依赖项:
如下,在没有进行时,的结构如下:
当我们执行:
fis3b release local -d ../output –watch
以后,再看当前项目的目录结构:
多出了三个依赖项!而且,依赖项的配置,可以是某个文件,也可以是整个文件夹:
可以看到,并不是把整个给过来,而是把具体的那个文件或者文件夹给过来。
那么,在我们编辑project_main_wap/project_wap/common/utils/ads.js文件的时候,外围的project_wap/common/utils/ads.js也会同步变动,文件夹的相关操作也是同步的,在内部好了工作。
在修改project_main_wap
项目中的依赖项时,要修改project_main_wap
中自动生成的依赖,而不要直接修改外围的依赖项,因为fws
只实现了对依赖项增删改
的单向同步
。
开发完毕,中断的命令时:
…………… 17.36s [15:25:43.922]
^C
Process:23676 Will Exit.
再看目录结构:
恢复正常了。但是万一中途出现其他异常情况,内的依赖项没有被清除掉怎么办?执行它:
fis3b clear
上述执行的fis3b
相关的命令,要在具体的项目中执行哦,这里都是在project_main_wap
中执行的。(除去tree
命令)
提供完善的本地开发(脱离任何后端环境的开发)、假数据Mock的功能
仍旧以项目为例:
fis3b release local -d ../output
这样就把构建出的项目发布到了目录中,在终端中进入到目录中,执行:
idtc ws start
命令响应OK以后,访问:http://127.0.0.1:8003/project_main_wap/page/index/shownexp.html即可在本地打开一个全功能的页面。
注意目录:
但是!这个目录结构需要我们手动生成吗??这岂不是很?其实如果手比较勤快,是可以手动生成的,因为这些文件都对应了真实的目录结构。
在项目初期,文件夹可以不用手动创建,再发布到本地的时候,跑起来的就能够一步一步地找到文件,那么当从浏览器中放问到这个页面的时候,就会自动生成对应的目录结构,只是假数据需要填充一下而已,假数据的书写,可以完全参看的格式来。之后,把文件夹手动至项目中,则可以重复利用~
聊聊AJAX的数据MOCK
数据mock方法类似,当我们滑动页面到最底端的时候,会发起一个请求:
/path2ajax/v1/moments/list/
而此请求的数据来自:
具体格式可以查看示例。需要注意的一点,的文件,不仅仅可以简单的:
还可以:
用来生成动态数据。
Tips: 在watch
状态下修改mock
数据,直接修改project_main_wap/mock
目录下的即可,fis3
会自动将mock
文件发布到output
目录下,刷新浏览器即可生效。
PUSH到开发机
开发机上要提前安装好相应的接收端服务:
npm install -g fis3-receiver
在远端机器上执行:
whoami@in-remote:~$ fis3rcv 6772
receiver listening *:6772
并且确保自己的远程发布配置是有效的:
在下面执行:
fis3b release whoami
就会先build项目,然后发布到远端机器上,查看效果即可。
跨站模板资源的引用
同样参看project_main_wap/page/index/shownexp.html页面
主项目的模板的根目录,要用标识符来确定,因为模式下和模式下的模板根目录配置是不同的,涉及到替换。
而再看project_wap/common/from_project_wap.html中的指令,则要使用:
{% include \\’/common/included_by_from_project_wap.html\\’ %}
仍旧需要使用标识符,同样需要动态确定当前属于哪一个项目。
需要在开发时区分这一点。
前端模板的使用
中,已经配置好了:
要这样使用:
细心的话可以注意到,项目中引入的是中的库文件和模板文件,这就是静态资源的跨站引用。
标准AMD规范式编码(才用了require.js)
默认加入了AMD标准规范的支持:
那么如何使用呢?而且,如何让和有效地结合在一起呢?这样:
这样的形式,同时也兼容了对静态资源添加戳的构建需求。
跨站less的引用
不再赘述,请具体细看:project_main_wap/page/index/shownexp.html中的:
Tips: 需要注意的一点是,在同一个项目中的less
文件中,使用import
引入其他文件,最好采用相对路径,可以很大程度上防止跨站资源引用的出错。
ES6的支持
集成了对源文件的编译插件:
这样使用即可:
工具开发与维护
的:
https://github.com/guananddu/fis3-wrapper-common
Idtc:
https://github.com/guananddu/idt/tree/idt4none-contextify
遇到任何bug请及时提交
也可以一起来开发和改进哦~
Other
配置文件示例:
http://s.pstatp.com/site/tt_mfsroot/standard/fis3idtc/fis-conf.js
作者:管伟
Java 插入、提取Excel中的OLE对象
OLE,是Object Linking and Embedding的缩写,中文译为“对象连接与嵌入”。在Office文档的运用中,是指将某个文档格式作为对象嵌入或以链接形式存在另一个文档格式里。本文就以将word文档作为对象嵌入Excel工作表为例,讲解如何通过后台运行Java代码来实现以上操作。
首先,我们需要搭建测试环境,除了安装JDK和Intellij IDEA外,还需借助第三方控件。在这里,推荐使用Free Spire.Office for Java控件。通过E-iceblue中文官网获取安装包后,解压找到lib文件夹下的Spire.office.jar,最后将其手动导入IDEA。或者也可以在IDEA中创建Maven仓库,然后在pom.xml中键入以下代码进行jar包导入。
示例1插入OLE对象到Excel工作表
添加效果:
示例2提取Excel中的OLE对象
提取结果:
Java的模板引擎FreeMarker的使用技巧
1.1 介绍
开发一个网站需要考虑几个问题,首先就是编程语言,其次就是开发框架,最后还需要考虑模板引擎。编程语言这里我们自然是Java语言了;开发框架就是编写网站后端功能模块的基础框架,这里福哥选择的是TFSpring框架;最后的模板引擎,就是在制作用户界面所使用的处理模块,也就是MVC架构里面说的视图,这里福哥就要引出今天的主角FreeMarker了。
FreeMarker是非常有名的基于Java语言的模板引擎,它支持非常丰富的语法,它有非常好的开发团队,所以福哥才会在TFSpring框架里面将FreeMarker作为模板引擎来使用。
2.1 依赖
这是freemarker的依赖,写到pom.xml里面就可以了。
默认情况下springboot会自动配置freemarker,为了演示方便我们先把它关闭了。
下面是一个标准的freemarker的示例。
首先通过Configuration对象的setDirectoryForTemplateLoading方法指定模板根目录。
然后通过Configuration对象的getTemplate方法创建模板对象。
最后通过Template对象的process方法整合模板内容并写入输出对象。
4.1 Java
4.2 模板
模板文件是test.ftl,这里福哥只写了一句话。
4.3 效果
福哥写了一个示例,演示如何将后端程序的变量指定给前端模板来使用的。
5.1 实体User
这是实体User的定义。
5.2 Java
下面演示如何向前端模板指定变量。
5.3 模板
下面是前端模板代码的示例。
5.4 效果
执行程序可以看到如下的页面效果。
6.1 变量
- 模板变量使用${…}表示,“…”就是Map对象的键名。
- 模板变量如果是一个结构可以通过${xxx.yyy}调用结构属性,“xxx”是结构对应的Map对象的键名,“yyy”是结构的属性名称。
6.1.1 实体User
6.1.2 Java
6.1.3 前端模板
6.1.4 效果
6.2 遍历循环
- 对集合变量进行遍历,就可以拿到集合的一个一个的元素。
- 对Map变量进行遍历,就可以拿到Map的键名和键。
6.2.1 Java
6.2.2 模板
6.2.3 效果
6.3 按次循环
- 按次循环需要知道起始数值和结束数值,对应数组循环的话需要考虑结束值是数组长度减一。
6.3.1 Java
6.3.2 模板
6.3.3 效果
6.4 嵌套循环
- 嵌套遍历循环需要注意子级名称的类型不要弄错了,后端Java要和前端模板严格对应。
6.4.1 Java
6.4.2 模板
6.4.3 效果
6.5 判断语句
- 判断语句同样使用“&&”和“||”表示“与”和“或”关系,使用“==”和“!=”表示相等和不相等。
- 判断语句“else if”需要连着写成“elseif”这样,否则会报错。
6.5.1 比较运算符
- ==:表示两边相等
- !=:表示两边不相等
- gt:表示左边大于右边
- gte:表示左边大于等于右边
- lt:表示左边小于右边
- lte:表示左边小于等于右边
6.5.2 Java
6.5.3 模板
6.5.4 效果
好了,今天福哥给童鞋们讲解了Java的模板引擎FreeMarker的使用技巧,相信大家今后无论是使用TFSpring框架开发项目,还是在自己的项目里面使用FreeMarker模板引擎,都可以制作出非常漂亮的用户界面了。
https://m.tongfu.net/home/35/blog/513259.html
用户评论
﹎℡默默的爱
终于找到了第二部分!感觉第一部分讲得很好,清晰易懂。希望能再更新一下学习使用java library的案例吧,比如如何用FreeJava来实现一个简单的游戏或者应用程序,这样更能让我们深入理解它的运用场景。
有14位网友表示赞同!
无关风月
我已经按照Part 1 的步骤安装了 FreeJava 了,现在可以开始跟着Part 2 学习如何获得和安装 javalibrary 了。这篇文章介绍非常详细,图文并茂,我很期待能够学会用FreeJava来开发项目!
有10位网友表示赞同!
冷落了♂自己·
说实话,我对 Java 一直不太感冒,特别是这些看似很复杂的库,看这个标题就头疼。不过,既然要学习 FreeJava 就应该了解 javalibrary 的用法,这篇文章还挺有吸引力的,也许能让我对 Java 重燃兴趣?
有19位网友表示赞同!
■孤独像过不去的桥≈
这篇文章太棒了!作者解释非常清晰,图文并茂,很容易理解。终于可以不用再困扰于如何获取和安装 javalibrary 了!我现在迫不及待想尝试一下 FreeJava 的功能,看看它到底有多强大。
有14位网友表示赞同!
杰克
这个标题看起来很吸引人,但实际内容可能并不满足我的需求。我想知道更多的是关于 FreeJava 的应用案例,以及一些比较具体的学习教程。仅仅介绍如何获取和安装 javalibrary 还是让我感到不够惊喜。
有19位网友表示赞同!
。婞褔vīp
我正在尝试用FreeJava来开发一个小型的开源项目,之前一直困扰于如何才能轻松获得 javalibrary,没想到这篇文章给了我很大的帮助!以后一定要关注一下作者的更新内容。
有12位网友表示赞同!
旧爱剩女
文章写的虽然不错,但免费开源的代码库现在真是太多了,怎么知道FreeJava 是最合适的?我希望作者能够深入分析 FreeJava 的优势,例如它比他のjava语言工具更好用在哪里?
有9位网友表示赞同!
等量代换
我之前就是从安装和获取 javalibrary 这个问题上一直卡壳,终于找到了解决方案!感谢作者分享这份宝贵经验,现在可以开始学习使用 FreeJava 进行项目开发了。
有8位网友表示赞同!
淡淡の清香
说实话,FreeJava 这个开源项目听起来有点复杂,需要学习很多新的知识。不过我本身就对 Java 开发很有兴趣,所以会尽量把这篇文章看完,尝试了解一下 FreeJava 的用法和它的优势。希望它能够真正解决我的一些开发痛点。
有5位网友表示赞同!
灬一抹丶苍白
如果能提供一些具体的案例代码,那就更好了!比如如何用FreeJava实现网络连接、数据处理等功能,这样学习的更针对性,也会更容易理解
有18位网友表示赞同!
命硬
安装就很容易,关键是之后的应用场景才是最需要解决的问题。希望作者能够在后续的文章中分享更多关于 FreeJava 的实际应用案例,例如一些开源项目或者商业项目的代码实现等等
有11位网友表示赞同!
在哪跌倒こ就在哪躺下
文章内容看起来很有价值,我马上就着手学习吧!期待后续的更新,希望能看到更深入的讲解和更多实用的技巧和案例分析。如果能有人回答我遇到的问题也会更好!
有17位网友表示赞同!
浮光浅夏ζ
这个免费开源的 java 库,听起来不错呢.我会试着去了解一下,看看它能不能帮助我提高代码效率。希望能够在使用过程中遇到问题的时候能得到及时帮助。
有6位网友表示赞同!
相知相惜
我对 FreeJava 其实没啥想法,因为我不是 Java 开发者。不过对于想要学习 Java 的朋友来说,这个教程可以作为很好的入门指导。建议作者添加一些适合初学者的基础知识讲解。
有16位网友表示赞同!
初阳
虽然文章很详细,但我还是希望能够看到更多关于 javalibrary 的具体使用案例,以及如何与 FreeJava 相结合进行开发。这些实用的内容对我来说更有指导意义。
有5位网友表示赞同!
余温散尽ぺ
这种类型的教程确实很有实用性,尤其是在网上到处都是收费培训课程的情况下。希望能持续更新,提供更多的 FreeJava 学习资源,帮助更多人掌握 Java 的技能。
有16位网友表示赞同!
熟悉看不清
这个标题吸引到我了 ! 虽然我对 Java 技术不太熟悉,但我对自由开源的项目很感兴趣。希望通过学习 FreeJava 能有所提升!
有18位网友表示赞同!