EasyJWeb-1.0 m3倾情发布

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情
 
我们非常荣幸的宣布,经过EasyJF团队成员几个月的努力和付出,EasyJWeb-1.0 m3今日正式对外发布,该版本作了非常多的调整和功能的改善,以求对开发人员带来更多帮助和和方便。
EasyJWeb-1.0 m3版本新增功能
1.  框架核心日志及提示信息支持国际化。
2.  提供了三个简单但能反映Java Web开发的完整入门示例。
3.  提供多种模板引擎支持(Velocity、Freemarker、Jamon、Jbyte、等),其中支持了由国人开发的模板引擎 CommonTemplate
 
EasyJWeb-1.0 m3所做的改进
1.  改进了项目的发布目录结构
2.  开源版权许可改为了Apache License2.0
3.  规范了EasyJWeb Tools的使用,可以快速生成EJS的应用,并对生成模板进行了调整
4.  修正了这两个月来大家提出的Bug及调整了一些功能,详情见jira.easyjf.com
5.  完善了入门文档,详情见wiki.easyjf.com
 
EasyJWeb-1.0 m3的获取
或者进入本站下载频道下载
一、EasyJWeb 项目目录结构

lib-发布目录,EasyJWeb应用所用到的相关jar库文件。
samples-应用示例目录,收录了一些比较经典的EasyJWeb示例,通过这些示例你可以快速了解EasyJWeb的应用。
docs-文档目录,包括EasyJWeb新手入门、开发指南及api文档等。
bin-实用工具目录,该目录存放的是一些批处理命令文件,是EasyJWeb Tools的一部分,可以通过执行这些命令文件快速生成Web应用骨架等。
src-EasyJWeb框的源代码,源代码目录下分成了core、ext、generator三个子项目,每一个子项目都是单独的maven工程项目。
pom.xml-EasyJWeb项目的maven配置文件,如果你机器安装了maven,则可以使用maven来管理EasyJWeb项目。
license.txt-EasyJWeb的版权许可声明。
这里重点看看lib目录,该目录是EasyJWeb的jar及相关jar文件。目录结构如下所示:
 
 
easyjweb-core-1.0-m3.jar 这是EasyJWeb框架的主要核心程序,一般应用中我们只需要该文件就能使用EasyJWeb。
easyjweb-ext-1.0-m3.jar 这是EasyJWeb框架的扩展程序,提供了非常实用工具类,通用业务逻辑封装,基于Spring2及JPA的泛型DAO实现及支持,另外还包括了对spring容器、guice容器的集成,commontemplate及freemaker等模板引擎集成等。要使用EasyJWeb快速开发基于EJS(EasyJWeb+JPA+ Spring)构架的Java EE应用程序,需要使用到该包。
easyjweb-generator-1.0-m3.jar 这是EasyJWeb的代码生成引擎,包括代码生成模板,实用模板等,主要用于在开发过程中实现快速开发。
required-目录中存放的是运行EasyJWeb程序的最小依赖包。包括下面几个文件:
commons-fileupload-1.2.jar用于处理文件上传;
commons-logging-1.0.4.jar用于通用日志处理;
dom4j-1.6.1.jar用于解析xml配置文件信息;
easydbo-0.9.1.jar简单的ORM映射及Bean处理;
jaxen-1.1-beta-12.jar dom4j的依赖包,支持xpath查询xml文件内容;
log4j-1.2.14.jar EasyJWeb中的主要日志文件;
velocity-dep-1.4.jar EasyJWeb的首选模板引擎;
 
spring-该目录存放Spring的相关jar文件;
jpa-该目录存放jpa及实现及其它相关jar包;
other-其它模板引擎、实用工具的相关jar包。
 
二、开源版权许可改为了Apache License2.0
详见项目中的license.txt及各个代码中包含的版权声明。
 
三、框架核心日志及提示信息支持国际化。
通过使用I18n工具类,把代码中的提示信息改为了支持多国语言提示。对于服务器端的日志及提示信息,改为与服务器本的语言;对于抛出给客户端的异常等信息,改为了根据访问者的国家或地区来选择使用提示语言。当前支持中文提示及英文提示(英文提示信息有待进一步完善),可以通过修改message.properties、message_zh_CN.properties文件的信息来调整提示信息。
 
四、EasyJWeb Tools 规范及快速开发体验
EasyJWeb Tools 的相关内容存放在 bin 目录,如下图所示:
 
 
本次改进规范了EasyJWeb Tools的发布结构,并提供了更加友好的快速体验及开发方式,主要包括以下几方面:
1、  用户可以自由定制代码生成模板,修改bin/templates中的内容;
2、  在EasyJWeb的bin目录中运行easyjweb project命令可以快速生成各种项目骨架(当前提供了一个最小EasyJWeb项目骨架及一个EJS企业级应用骨架)。
3、  如果您有一个JPA的Entity,这里假如名为 Customer.java(在myapp.domain包),那么你可以通过按下面的操作快速完成一个针对Customer的添删改查示例。
(1)在bin目录执行easyjweb project e:/test/ejs -ejs
(2)把Customer.java拷到e:/test/ejs/src/main/java/myapp/domain目录。
(3)切换到e:/test/ejs/bin目录,执行easyjweb crud myapp.domain.Customer ../src/main/java/myapp/domain/Customer.java
(4)修改e:/test/ejs/src/main/resources/ db.properties,主要是数据库用户名及密码。
(5) e:/test/ejs/bin目录执行easyjweb war,完成后会在e:/test/ejs/target目录中生成一个ejs.war文件,把该文件拷到Web服务器的webapps目录。
(6)启动Web服务器,在浏览器中输入 http://localhost:8080/ejs/customer.ejf,你将会看到程序的应运效果,如下图所示:
 
关于EasyJWeb Tools,在EasyJF与Cownew两个开源合作的BlueFin项目(EasyJWEB快速开发的ECLIPSE插件)中,也将会涉及到对EasyJWeb Tools的一些改进,请大家关注,并欢迎参与到其中。
 
五、简单但能反映Java Web 开发的完整入门示例。
相对于前期EasyJWeb应用示例要么不完整,要么太复杂的问题,本次发布将伴随发布三个简单,但相对较为完整的示例。分别是 helloworldsimple-crudcustomer-crud,另外examples目录中还将会发布一个大型的示例,您可以单独通过上面的连接下载这些示例单独运行。
 
六、多模板引擎支持
对视图渲染进一步加强,提供了对多模板引擎的支持,首先提供对 CommonTemplate引擎的支持,该模板引擎是由国内的开源爱好者开发的,在易用性、语法特点上相对其它模板引擎有很多优点。只需要在容器中加入一个Bean配制,就能在EasyJWeb中使用CommonTemplate模板引擎来解析所有以ct为扩展名的视图,如下所示: 
<bean name="CommonTemplatePage" class="com.easyjf.web.core.support.CommonTemplatePageVender">
<property name="suffix" value="ct"/>
</bean>
七、Bug 修正及新Bug 的提交
在EasyJWeb-1.0 m1版本发布以来,我们收到了很多开源爱好者的反馈,提供了很多非常好的新功能建议以及提交了很多在使用过程中遇到的Bug,我们对已经发现的Bug都已经逐一修正,详情可以通过jira.easyjf.com浏览,同时也欢迎大家提交更多的Bug。
 
八、文档完善
本次发布的一个重点是对文档的完善,包括EasyJWeb项目的构建指南,入门指南等都作了比较大的改进,另外在官网上还增加了配置文件指南及一些其它上手示例。同时,在本次发布以后到春节前,我们都会把一个重点工作放在EasyJWeb项目的文档上。
 
九、致谢
感谢各位关心EASYJWEB的开源爱好者
感谢为EasyJWeb-1.0 m3的发布贡献力量的所有EasyJF成员
感谢 CommonTemplateCowNew等开源 团队提供的帮助
如何提升 API 接口性能:从设计到实战的完整指南 提升 API 接口性能需要从全局出发,先定位瓶颈,再有针对性地优化。缓存、数据库、并发、网络传输和代码质量是五个最核心的发力点。实际项目中,建议遵循「先测量、再优化、后验证」的原则,避免盲目改动。希望本文的方法能帮助你构建出更快、更稳的 API 服务。本次订单接口慢的多层叠加根因SQL 层面:索引不合理、深分页、冗余字段查询,数据库 IO 过高。代码层面:循环串行调用远程接口,串行耗时叠加。缓存层面:热点用户订单无缓存,大量重复查询打满从库。架构层面:所有流量打从库,无热点隔离、无预计算汇总数据。 阅读详情

相关推荐

easydbo-0.9.1

easydbo-0.9.1.src 最新版本

EasyJWeb-1.0 m3发布

我们非常荣幸的宣布,经过EasyJF团队成员几个月的努力和付出,EasyJWeb-1.0 m3今日正式对外发布,该版本作了非常多的调整和功能的改善,以求对开发人员带来更多帮助和和方便。EasyJWeb-1.0 m3版本新增功能1.  框架核心日志及提示信息支持国际化。2.  提供了三个简单但能反映Java Web开发的完整入门示例。3.  提供多种模板引擎支持,率先支持了由国人开发

蔡世友-重出江湖 2348

maven-easyb-plugin-0.9.jar

maven-easyb-plugin-0.9.jar

Spring Task定时任务全解析:从入门到实战

本文介绍了SpringTask定时任务的使用,涵盖核心注解、三种配置方式(固定延迟、固定速率、Cron表达式),重点解析Cron表达式语法及常见用法,并结合苍穹外卖项目展示实际应用场景。通过完整代码示例与注意事项说明,帮助开发者快速上手。最后提供多线程优化方案,适用于高并发场景。适合初学者系统学习定时任务开发。

ize250917的博客 274

SpringAI+大模型对接的新小项目巩固

还有就是对话历史的保存用的是面向接口的思想,写好接口,并在具体类中使用接口利用spring的注解Component会自动注入到容器,在Controller中可以用接口对象直接调用,因为目前接口只写了一个,具体类实现接口也只有一个,所以用接口对象直接就可以调用我们需要实现的具体类中中的方法,这样做的好处可以在后面不用再Controller里大幅度改代码,可以直接修改实现接口的具体类或者增加具体类来使用接口,Controller里的接口对象就不用改。,拿到对应 ID,再根据 ID 去拉原始文本,交给大模型。

Huangxy__的博客 224

SpringCloudAlibaba

微服务技术是将一个复杂的项目抽成一个一个小的项目(比如超市系统里面可以把用户管理和订单管理分开做成不一样的项目,然后他们之间通过http。不同微服务,不要重复开发相同服务 比如查询订单以及对应的用户和商品,将逻辑全部嵌套到订单项目中,就导致了重复。服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。单一职责:微服务拆分粒度更小,每个服务都对应唯一的业务能力,做到单一职责,避免重复业务。服务消费者:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)

m0_46907779的博客 283

SpringBoot 启动报 Failed to introspect Class,一次网关项目的排查记录

如果还不确定,手动把本地仓库里相关目录删了,再 mvn clean install -U 强制更新一次,旧包缓存导致的问题也能解决。第一反应是依赖传递有问题,查了一下果然是公共工具包里把 MyBatis 的配置类一起打包了,网关引入这个公共包,类加载器去加载 MybatisPlusConfig 时发现缺 MyBatis 相关类,就报这个错。我们证书现在用 lcjmSSL 自动申请和部署,支持多域名、泛域名和 IP,API 也简洁,不需要手动配,减少线上环境因为证书问题半夜报警的情况。

osfipin note 132

Spring 的模块体系详解

<think>我们根据要求生成摘要,不超过150字。内容概括Spring模块体系:模块化设计,7大模块组,核心容器、数据访问、Web、AOP、测试、消息、基础设施等,每个模块组包含具体模块。总结设计优点和Spring Boot自动引入。需要简洁。</think>Spring Framework采用模块化设计,由七大模块组构成:核心容器(IoC与依赖注入)、数据访问/集成(JDBC、事务、ORM等)、Web层(MVC、WebFlux等)、AOP与Aspects、测试支持、消息抽象及基础设施。开发者可按需组合模

weixin_51288065的博客 300

给老 Spring 项目装个 AI Agent

老系统想接 AI,别急着搭 Python sidecar。用 Spring AI 在原有 JVM 里跑起一个三段式 Agent:planner 拆活、executor 拿白名单工具干活、reporter 汇报。能力边界靠运行时隔离强制,比在提示词里反复叮嘱管用。

tangyuewei.com 266

着色器缓存大小设置多少合适?N卡A卡缓存路径与清理方法

玩《三角洲行动》这类大型游戏时画面卡顿、加载缓慢,或者C盘空间莫名其妙变少,这通常和着色器缓存有关。那么着色器缓存大小设置多少最好?N卡着色器缓存存在哪?又该怎么清理?下面从设置到清理一步步说清楚。

2601_96225553的博客 865

《从伪管控到真风控:SpringBoot+MySQL 堵死重卡充电桩平台坏账漏洞》 -慧知开源重卡充电桩平台

重卡充电桩90%坏账源于“伪授信管控”:表面有额度,实则并发超支、跨站失控、账实不符。传统系统用单车逻辑应对多车并发,额度扣减滞后;场站数据孤岛导致总额度失控;线下操作绕过系统,账面与真实严重脱节。通过SpringBoot+MySQL实现原子扣减+分布式锁、全局授信池、全流程线上留痕,从根源堵住漏洞。真正的风控不在于“有功能”,而在于“真落地”——唯有账实一致、全程可溯,才能将风险缝隙变为利润空间。

李文慧 中国开源充电桩平台第一人;李文慧 国内知名开源工作者 全栈工程师 华为云最具价值专家 367

Java框架快速入门: Spring Security+OAuth2之资源服务器配置

本文详解在Spring Security 5.1+中,将授权服务器改造为兼具资源服务器功能的实践。核心包括:通过ResourceServerConfig配置安全拦截路径,启用oauth2ResourceServer替代自定义JWT Filter;使用自定义JwtAuthenticationConverter合并scope与authorities权限,确保@PreAuthorize注解生效;配置统一公钥端点jwk-set-uri并调试转换过程。示例代码可直接运行,实现权限无缝融合。

Wang的专栏 113

Spring AI (第三章) 自定义拦截器+系统提示词(基础总结)

Spring AI (第三章) 自定义拦截器 + 系统提示词(基础总结)

EXIxiaozhou的博客 164

Java框架快速入门:Spring Security+OAuth2之用户注册与唯一性校验实现

本文基于Spring Boot与Spring Security,实现安全的用户注册接口。通过UserDTO校验唯一性(用户名、邮箱、手机号),使用PasswordEncoder加密密码,自动赋予ROLE_USER角色,并在事务中持久化。采用统一异常处理机制,返回结构化错误信息。代码涵盖实体、仓库、服务、控制器及测试,流程清晰,可直接运行,保障注册流程的安全与健壮性。

Wang的专栏 103

Java框架快速入门: Spring Security+OAuth2之多因子认证缓存服务

本文基于Spring Boot与Redisson,实现多因子认证(MFA)中的临时状态缓存。通过嵌入式Redis测试环境,使用RMapCache存储用户信息,结合随机生成的MFA ID与300秒过期时间,确保验证过程安全高效。核心服务UserCacheService支持缓存、查询与一次性校验,验证成功后自动清除数据,避免脏数据残留。代码结构清晰,可直接运行,适用于高并发场景下的MFA认证需求。

Wang的专栏 63

V4.1 Flash 缓存压缩 4 倍,省在哪

9 月 10 日 DeepSeek 发布 V4.1 Flash。据每日经济新闻报道,官方口径里有三个数字最值得工程同学注意:552B 参数的 MoE、输入激活 8B / 输出激活 16B、KV Cache 压缩后 HBM 需求降到上一代的 1/4、SSD 需求降到 1/8,同时具备原生多模态视觉理解能力,并下调了 API 定价。

AI时代光年 695

spring ai 实战 MCP(2)-生产使用建议

上一篇我们介绍了spring ai 开发MCP server 和client的用法,本篇将结合实际项目经历,结合遇到过的相关问题,讲一下在生产环境中使用技巧。

lujia_loney的博客 272

Spring AI 2.0 接入 GPT-6 Astra 企业级实战:异步工具调用、Mid-turn Steering 与百万上下文成本控制

GPT-6 Astra 的发布标志着大模型从"回答问题"正式转向"直接完成工作"。对于 Java 后端工程师而言,这不是"Python 工程师的专属玩具"——Spring AI 2.0 的 OpenAI 兼容层提供了extraBody透传等关键能力,让我们能在熟悉的 Spring Boot 生态中完整接入 Astra 的五大核心特性。本文围绕ResearchGen 智能研究报告生成系统。

qq_36021478的博客 179

SpringBoot_8:WebSocket与轮询对比

在追求数据高时效性的场景下,建议使用WebSocket而非轮询。使用WebSocket会降低请求率,从而减轻服务器压力。但是WebSocket并不是免费的午餐,是不是需要心跳保活机制判断连接健康状态?最大连接数是不是需要限制?是否占用线程,未来连接过多线程够用吗?如果消息某次推送失败了,是不是需要重发?未来机器横向扩展,session怎么跨机器使用?鉴权到期,安全措施,性能...将会面临很多问题。针对不同场景,两种方式都有自己的优势,有时候轮询的代价可能远小于WebSocket。

2401_89252636的博客 195
上一篇: EasyJF与CowNnew携手打造BlueFin
下一篇: EasyJWeb国际化体验
skyoo
博客等级 码龄19年 4粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值