通常,我会遇到代码,其中重复使用/滥用Getter方法来获取某些值或将其作为方法参数传递,例如:
public class Test {
public void someMethod() {
if(person.getName() != null && person.getName().equalsIgnoreCase("Einstein")) {
method1(person.getName());
}
method2(person.getName());
method3(person.getName());
method4(person.getName());
}
}
Run Code Online (Sandbox Code Playgroud)
我通常编码,如下所示:
public class Test {
public void someMethod() {
String name = person.getName();
if(name != null && name.equalsIgnoreCase("Einstein")) {
method1(name);
}
method2(name);
method3(name);
method4(name);
}
Run Code Online (Sandbox Code Playgroud)
在我看来,将getter分配给变量并使用它有很大的内存/性能优势,因为Getters是Java方法并使用堆栈帧.编码方式真的有相当大的优势吗?}
使用的库/工具:1)Jasper报告2)iReport 3)Java
我已经为我的报告生成了一些标准条形码,但这一次,我正在尝试生成一个自定义条形码,我有一个字体文件custom-barcode.ttf.截至目前,iReport支持2个条形码库 - Barcode4j和Barbecue,它们不支持我需要的自定义条形码.任何开始的想法,没有使用一些新库(我已经使用Barcode4j)的额外开销?
顺便说一句,我知道这个网站上已存在类似的问题(自定义条形码字体).
如上图所示,我有一个EJB-3企业应用程序(EAR文件),它充当门户网站并拥有3个与同一数据存储区通信和交易的Web应用程序(WAR文件).这3个webapps不是portlet实现,而是通过Enterprise App的持久层与数据存储交互的普通webapp.这些Web应用程序是独立开发的,因此,有些人使用企业应用程序中的Web服务,而某些人使用EJB客户端.
此外,还有一个选项可以替换这些Web应用程序(Web App1,Web App2和Web App3),并使用独立的Enterprise Apps与数据库进行通信和交易,如下所示:
现在,我的问题是:
1)列出的2个选项(上图)中最佳选项是什么?
2)当我们将作为客户端的Web应用程序替换为企业应用程序时,它作为独立的企业应用程序(EAR文件)会如何影响?
3)什么是更好的事务处理,SSO功能,可伸缩性和其他因素的模型?
4)还有其他更好的型号吗?
编辑:
1)在第一个模型中,哪种方法是与EAR文件交互的首选方式 - webservices或ejb-client jar文件/库(接口和实用程序类)?
2)两种型号的内存使用(服务器RAM)和性能有何不同.有什么可观的差异吗?
java ×3
barcode ×1
coding-style ×1
enterprise ×1
getter ×1
ireport ×1
performance ×1
portal ×1