具体架构如下所示
JSP(get/post)
|
action(serviceName=BLH别名,method=Method)
|
BLH(在xml文件中配置别名对应的BLH类名)
|
Method
|
BLL(@Transactional,property IDaoEx)[spring托管]
|
DAO(extends DaoEx[调用hibernate实现] implements IDaoEx)[spring托管]
|
POJO(直接写类通过注解加hbm2ddl生成对应的表) 我们项目中用了一个改造的struts1.3+spring2.0+hibernate3.2,在数据访问层有一个公用的Dao及其接口IDao(某个项目的遗留产物),在这个公用dao中实现对pojo的增、删、改、查、分页,然后我又对该dao及接口进行了增强,新添加了一个IDaoEx继承了IDao,添加了直接执行hql(主要针对批量操作使用)、统计(DetachedCriteria,Map,Hql三种方式),然后用DaoEx同时继承Dao和实现IDaoEx中的方法,然后项目中所有pojo用注解生成相应的表,所有dao都继承DaoEx(不同的是重载setEntity方法将不同的pojo.class设置进来),在spring中的bll类的IDaoEx接口属性注入相应的dao。最后在bll类中加上@transational使其每个方法默认添加事务。
在struts中的action上面又加了一个blh层,通过在struts配置文件配置直接将action映射到blh中的方法,所以action做成一个通用的入口(具体哪个bll类的某个方法处理在配置文件中配置)和出口(具体由那个页面展现通过foward决定),blh有点类似dotnet中的后台页面cs,在blh中直接调用spring去取bll类(没有为bll设计接口)来实现业务逻辑。
请问这样设计在扩展性和性能上面如何改进?还有就是现在用tomcat6做web服务器,oracle在一台服务器,每次web服务器启动网站初始化都失败,有可能是oracle那台服务起的太慢造成的,能否将spring初始化设置第一次访问网站才进行?
JSP(get/post)
|
action(serviceName=BLH别名,method=Method)
|
BLH(在xml文件中配置别名对应的BLH类名)
|
Method
|
BLL(@Transactional,property IDaoEx)[spring托管]
|
DAO(extends DaoEx[调用hibernate实现] implements IDaoEx)[spring托管]
|
POJO(直接写类通过注解加hbm2ddl生成对应的表) 我们项目中用了一个改造的struts1.3+spring2.0+hibernate3.2,在数据访问层有一个公用的Dao及其接口IDao(某个项目的遗留产物),在这个公用dao中实现对pojo的增、删、改、查、分页,然后我又对该dao及接口进行了增强,新添加了一个IDaoEx继承了IDao,添加了直接执行hql(主要针对批量操作使用)、统计(DetachedCriteria,Map,Hql三种方式),然后用DaoEx同时继承Dao和实现IDaoEx中的方法,然后项目中所有pojo用注解生成相应的表,所有dao都继承DaoEx(不同的是重载setEntity方法将不同的pojo.class设置进来),在spring中的bll类的IDaoEx接口属性注入相应的dao。最后在bll类中加上@transational使其每个方法默认添加事务。
在struts中的action上面又加了一个blh层,通过在struts配置文件配置直接将action映射到blh中的方法,所以action做成一个通用的入口(具体哪个bll类的某个方法处理在配置文件中配置)和出口(具体由那个页面展现通过foward决定),blh有点类似dotnet中的后台页面cs,在blh中直接调用spring去取bll类(没有为bll设计接口)来实现业务逻辑。
请问这样设计在扩展性和性能上面如何改进?还有就是现在用tomcat6做web服务器,oracle在一台服务器,每次web服务器启动网站初始化都失败,有可能是oracle那台服务起的太慢造成的,能否将spring初始化设置第一次访问网站才进行?
有人访问时才初始化spring.
sping是单例的.