oojdon
2009-07-22 16:32
这个Component怎么跑起来?

@Component
public class InFilterManager {	
	private Collection inFilters;

	public InFilterManager(String[] inFilterClassNames) {
		initFilters(inFilterClassNames);
	}

	private void initFilters(String[] filters) {
		try {
			inFilters = new ArrayList();
			for (int i = 0; i < filters.length; i++) {
				String className = filters[i];
				inFilters.add((MessageRendering) Class.forName(className).newInstance());
			}
		} catch (InstantiationException e) {
			throw new ForumException(e);
		} catch (IllegalAccessException e) {
			throw new ForumException(e);
		} catch (ClassNotFoundException e) {
			throw new ForumException(e);
		}

	}
}
<p>

[该贴被oojdon于2009-07-22 16:33修改过]

banq
2009-07-22 16:36
需要常数配置的Component没有支持,还是需要XML配置,这正好发挥XML配置的作用,XML用来作为配置,一些常数字符串的配置修改,而且修改后,无需重新编译软件,即可运行。

jdonlearner
2009-07-23 21:16
哇,jdonframe愈来愈简单,太好了.顶个!

BANQ老师,持久层daoCRUD和hibernate的注入还要自己配置吗?

banq
2009-07-24 11:21
>持久层daoCRUD和Hibernate的注入还要自己配置吗

多谢,应该不用配置,如果你实现或继承DaoCRUDTemplate以后,在这个继承子类上标注@Componnet就可以。

但是,如果直接使用框架中的组件,还是需要XML配置,这个方面方便性,这个版本还没有考虑到,我先思考一下如何协调,如果你有好的建议,也提出来,谢谢。

banq
2009-07-24 14:38
关于为什么不增加@Transaction支持注解的说明:

使用Jdon框架可以使用事务机制,在代码中直接写JTA调用就可以(可见JiveJdon源码),那为什么Jdon框架不直接@Transaction注解呢?

主要是设计理念不同:我个人一直认为:事务是软件不可伸缩的罪魁祸首,给一段代码标记上事务,实际表明,这段代码中方法操作就是串行化的。我们可以使用基于内存对象模型的并发锁来替代事务操作,事务最后就异化为专为数据库操作准备的技术。

既然是为数据库等资源准备的技术,为什么要上升到业务层呢?业务层完全可以基于缓存中领域模型对象的并发锁机制来实现,更有甚者,可以采取云计算框架来帮助实现。实现方式见:http://www.jdon.com/jivejdon/thread/36633.html

所以,事务在某种程度上代表串行化计算,和云计算 异步处理 并行计算等概念是矛盾的。我们必须为降低事务粒度而和业务进行某种博弈,这时框架不能在其中再偏向事务串行化阵营。而EJB框架,以及整合Hibernate后的Spring框架,业务层缺省是事务的,是偏向事务阵营的。

见这个讨论: http://www.jdon.com/jivejdon/forum/messageList.shtml?thread=36063&message=23122681#23122681

以及:

http://www.jdon.com/jivejdon/thread/36633.html

[该贴被admin于2009-07-25 17:49修改过]

猜你喜欢