这个问题是我早期帖子的延续:java中的访问者模式实现 - 这看起来如何?
重构我的代码时我有点困惑.我试图将我的访问者模式(在前一篇文章中解释)转换为复合策略模式.我想做这样的事情:
public interface Rule {
public List<ValidatonError> check(Validatable validatable);
}
Run Code Online (Sandbox Code Playgroud)
现在,我将定义一个这样的规则:
public class ValidCountryRule {
public List<ValidationError> check(Validatable validatable) {
// invokeDAO and do something, if violation met
// add to a list of ValidationErrors.
// return the list.
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我可以有两个不同类型的对象进行验证.这两个可能是完全不同的:说我有一个商店是Validatable,再一个Schedule是Validatable.现在,如果我写一个看起来像这样的复合:
class Validator implements Rule {
private List<Rule> tests = new ArrayList<Rule>();
public void addRule(Rule rule) {
tests.add(rule);
}
public List<ValidationError> check(Visitable visitable) {
List<ValidationError> list = new ArrayList<ValidationError>(); …Run Code Online (Sandbox Code Playgroud) 我有设计问题.
我有两个数据对象,它们是类A和类B的实例.A和B没有任何行为 - 它们是带有getter和setter的java bean.我有一个验证界面和10个实现它定义不同的验证.我想在我的属性文件中指定哪个Validation适用于哪个类.像这样:
类A XYZValidation,ABCValidation
B类:ABCValidation,PPPValidation等
我如何编写我的Validation类,以便它提供作为A类或ClassB实例的对象,或者我将来可能要添加的任何其他C类?
interface Validation {
public boolean check(??);
}
Run Code Online (Sandbox Code Playgroud)
>只是想添加这一行,感谢所有回复此帖的人,并说我喜欢这个神奇的网站上的时间.Stackoverflow岩石!

以上是我计划用于组织中的Java项目的结构模拟.你们怎么看待它?它看起来像传统吗?另外,如果你使用project1,在标签下,你可以看到1.0.1,1.0.2等等 - 这些是发布后发布的发布标签.现在,Dev分支下会存在哪种标签?什么时候会被创造?我应该在DevBranch下为每个开发人员创建分支吗?我很迷惑.
我是AOP领域的新手.我第一次编写应用AOP概念的东西时,我很高兴能够理解方面如何消除应用程序中的交叉切割模式.考虑到解决交叉模式,如安全性,日志记录,交易,审计等应用AOP,我感到不知所措.
然而,当我第一次向我正在工作的客户提出使用AOP时,我被告知他们不支持它.有人告诉我,AOP意味着更多的维护!如果您的代码发生变化,您的切入点必须更改.因此,每当您更改应用它们的代码时,您可能必须分析,更改和测试您的方面?
关于这个你有什么要说的?为什么主流公司尚未开放广泛使用AOP?AOP世界在哪里?
根据这个问题,问一切:executeBatch方法有效吗?是否有一个性能基准,即...如果要插入1000条记录,使用executeBatch而不是executeUpdate可以节省x个数据库周期数量?
或者这只是一个惯例?
编辑:以下是我正在使用的内容:Z/OS上托管的DB2 V 8.1,这是一个Web应用程序,它将在最糟糕的情况下一次性插入80,000条记录.
通常,当您为应用程序声明不同的"<authentication-provider>"(在我的情况下为webapp)时,Spring Security将负责一个接一个地调用提供程序,这会导致失败.因此,假设我在配置文件中首先声明了DatabaseAuthenticationProvider和LDAPAuthenticationProvider,并且在运行时首先调用DatabaseAuthenticationProvider,如果身份验证失败,则尝试LDAPAuthentication.这很酷 - 但是,我需要的是运行时切换.
我想有一个选择在这两种方法之间选择(基于数据库的身份验证/基于ldap的身份验证),并以某种方式基于这个全局设置来实现实现.
我该怎么做?是否可以使用Spring-Security?
这是一个用例:
我有一个桌面应用程序(使用Eclipse RCP构建),在启动时弹出一个对话框,其中包含"UserName"和"Password"字段.一旦最终用户输入他的UserName和Password,就会联系一个服务器(一个spring remote-servlet,客户端是一个spring httpclient:类似于这里的方法 .),并且在服务器端执行身份验证.
与上述情况有关的几个问题:
请让我知道您的设计/建筑评论/建议.感谢您的帮助.
我正在尝试创建一个web应用程序,它将使用js前端并在后端调用Spring WS.假设这是一个购物网站类型的网站.所以,我可以有类似的服务OrderService InventoryService ShippingService等等.唯一需要会话的是用户的购物车.现在,就这个购物车而言,使用servlet容器进行会话管理是否有意义?或者,我是否应该将会话CartService信息持久保存到数据库中?
使用WebServices进行会话管理时,最佳做法是什么?我想,最好的做法是保持服务无状态,但如果我有无状态的web服务,如何授权用户呢?
使用servlet容器进行会话管理然后让不同的控制器充当web服务的代理是一种很好的做法吗?
我的代码如下所示:
public interface BaseDAO{
// marker interface
}
public interface CustomerDAO extends BaseDAO{
public void createCustomer();
public void deleteCustomer();
public Customer getCustomer(int id);
// etc
}
public abstract class DAOFactory {
public BaseDAO getCustomerDAO();
public static DAOFactory getInstance(){
if(system.getProperty("allowtest").equals("yes")) {
return new TestDAOFactory();
}
else return new ProdDAOFactory();
}
public class TestDAOFactory extends DAOFactory{
public BaseDAO getCustomerDAO() {
return new TestCustomerDAO(); // this is a concrete implementation
//that extends CustomerDAO
//and this implementation has dummy code on methods
}
public …Run Code Online (Sandbox Code Playgroud) 关于应用程序的一些背景,我将在接下来的几行中讨论:
XYZ是一个数据屏蔽工作台eclipse RCP应用程序:你给它一个源表列和一个目标表列,它将应用一个trasformation(加密/ shuffling/etc)并将行数据从源表复制到目标表.现在,当我一次屏蔽n个表时,该应用程序将启动n个线程.
这是问题:
我在第一次推出上述应用程序时遇到了生产问题.不幸的是,我没有任何日志来到根.但是,我尝试在测试区域运行此应用程序并进行压力测试.
当我收集.hprof文件并通过分析器(yourKit)运行它时,我注意到oracle.jdbc.driver.T4CPreparedStatement的对象保留了堆.分析还告诉我,我的一个类正在持有对这个preparedstatement对象的引用,因此,n个线程有n个这样的对象.T4CPreparedStatement似乎有字符数组:lastBoundChars和bindChars,每个都是char [300000].
所以,我研究了一下(google!),获得了ojdbc6.jar并尝试反编译T4CPreparedStatement.我看到T4CPreparedStatement扩展了OraclePreparedStatement,它动态地管理lastBoundChars和bindChars的数组大小.
所以,我的问题是:
我在网上找到了类似的东西:http: //forums.oracle.com/forums/thread.jspa?messageID = 2860681
感谢您的建议/意见.
java ×9
java-ee ×2
oop ×2
performance ×2
spring ×2
aop ×1
architecture ×1
aspects ×1
database ×1
eclipse ×1
factory ×1
generics ×1
jdbc ×1
memory-leaks ×1
methods ×1
oracle10g ×1
rules ×1
security ×1
svn ×1
web-services ×1