- 浏览: 2652480 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
Velocity就是一个template引擎,或是代码生成器。
由template,engine,context组成。
1. 首先创建一个template(如果是用在web上就是一个html文件),将需要参数化或实例化的地方用跟context有关的符号标记出来,标记时使用velocity template language。而template应该可以是任意的文本。
2. 给context设定一些值,这些值用来替换在template中被标记的地方。
3. 利用engine将template中需要替换的地方用context中的值替换掉,也就是所谓的merge,从而得到该模板的实例。
除此之外,还有些组件:
logging:用log4j作为其日志系统。
Resource loader:控制网页生成中使用的模板。
VelocityEngine--->RuntimeInstance initializeResourceManager() ----------->ResourceManagerImpl initialize() assembleResourceLoaderInitializers() getTemplate() ----------->getResource()------->loadResource() ----->Resource:Template resource.process() ------>ResourceLoader getResourceStream() ------>RuntimeInstance parse() parse阶段 RuntimeInstance prase()-------->ParserPool get()---------->Parser parse()
ResourceManager
Velocity.setProperty("resource.manager.class", "ResourceManager");
ResourceLoader
默认是FileResourceLoader
ResourceCache
默认是ResourceCacheImpl
RuntimeConstants总控配置
resourceType
velocity有两种资源类型 RESOURCE_TEMPLATE, RESOURCE_CONTENT,
相关推荐
【Velocity项目源代码】是一个基于Java的模板引擎,它被广泛应用于Web开发中,用于生成动态内容。Velocity通过将业务逻辑与表示层分离,提高了Web应用程序的开发效率和可维护性。这个【描述】提到的"Velocity_...
** Velocity 源码分析与应用实例 ** Velocity 是一个基于 Java 的模板引擎,它允许开发者将业务逻辑和页面展示分离,使得Web开发更加高效。Velocity 提供了一种简单但强大的语言来创建动态内容,其核心设计思想是...
Velocity Engine负责解析和渲染模板,生成最终的输出。 在结合Struts2和Velocity时,通常会在Struts2的Action中处理业务逻辑,并将结果对象放入到Value Stack或Session中,然后配置一个Struts2的Result类型为...
源码分析可以帮助开发者更好地理解和定制Velocity以满足特定需求。此外,有一些工具可以帮助开发者更高效地使用Velocity,例如IDE插件、模板调试器等,它们可以提高开发效率并减少错误。 总的来说,Velocity是一个...
在运行时,Velocity会将这些模板与数据源结合,生成最终的输出代码。这种设计使得代码生成器能够灵活地根据需求自定义模板,从而适应不同的编程场景。 `CreateCode.java`是这个代码生成器的核心类,可能包含了初始...
在"velocity-tools-2.0-src.zip"这个压缩包中,包含了 Velocity Tools 2.0 版本的源代码,这为我们深入理解并定制这个工具集提供了可能。 1. **Velocity 框架介绍** Velocity 是一个基于 Java 的模板引擎,它允许...
Velocity模板解析是Apache软件基金会开发的一个Java模板引擎,它允许开发者在HTML、XML、Java源代码等静态文件中嵌入可执行的代码片段,从而实现动态生成内容。这个技术广泛应用于Web开发,尤其是在MVC(Model-View-...
**示例源码解析** 在提供的压缩包`struts2+velocity`中,可能包含了以下内容: 1. `struts.xml`: Struts2的配置文件,定义了Action、Result和Interceptor等。 2. `Action类`: 实现特定业务逻辑的Java类,继承自...
对于标签“源码”和“工具”,我们可以进一步研究这两个模板引擎的源代码,理解其工作原理,并掌握如何在项目中有效利用它们。提供的文件列表似乎包含了一些日志文件、项目配置文件和源代码库,这可能是项目开发或...
`VelocityTest` 文件可能是项目中的主要源代码文件,它可能包含了初始化Velocity上下文、加载模板和渲染输出的过程。例如,它可能有以下代码片段: ```java VelocityContext context = new VelocityContext(); ...
对于源码阅读者,理解Velocity的初始化流程有助于深入定制和优化模板引擎的性能。在开发工具方面,可以利用IDE的插件或者Maven、Gradle等构建工具自动配置和集成Velocity,简化项目开发过程。 总的来说,Velocity的...
### 源码分析 深入研究Velocity的源码有助于理解其工作原理,例如如何解析模板、如何执行指令、如何处理上下文对象等。这不仅可以帮助优化模板设计,还能为自定义扩展提供基础。 ### 学习资源 - 博文链接:...
- **高效性能**:Velocity在编译模板后生成Java源码,然后由JVM执行,这使得其运行速度快且资源消耗低。 - **可扩展性**:Velocity Tools和其他扩展可以增加更多功能,如国际化、表单处理等。 然而,需要注意的是,...
在给定的压缩包文件"zzzztttt"中,可能包含了Velocity的相关教程、示例代码、或者是用于演示如何在Web项目中集成Velocity的资源。如果你需要进一步了解或学习Velocity,这个压缩包会是一个很好的起点。
通过这个"struts2+Velocity替换jsp项目源码",你可以学习到如何将一个传统的基于JSP的Web应用转换为使用Velocity作为视图层,从而提升项目的可维护性和性能。这是一个很好的实践案例,对于深入理解和掌握Struts2与...
2. 查看Java源代码文件,了解如何创建`VelocityContext`,设置变量,并使用`VelocityEngine`渲染模板。 3. 找到模板文件(可能是`.vm`扩展名),查看其VTL语法。 4. 运行Java程序,观察输出结果,理解模板与Java代码...
通过研究"velocity-1.6.3_Src_jar"的源代码,开发者可以深入了解其内部实现机制,包括模板的解析过程、指令的执行逻辑以及上下文管理等,这对于优化性能、解决兼容性问题或者扩展Velocity功能都有极大的帮助。...
在构建过程中,执行特定的目标或插件,利用Velocity模板生成指定的源代码,然后编译进项目。 6. **代码质量与维护** 自动化生成的代码虽然能快速生成基础框架,但仍然需要开发者的审查和调整,以确保代码质量和...