汤阳光_Spring2.5课程文档(一)剖析.doc

汤阳光_Spring2.5课程文档(一)剖析

Spring基础 以上代码是有问题的,即“在Service中引用的具体的实现类”,这样就和具体的实现类耦合在了一起,如果要更换(比如要换成OracleUserDaoImpl),就需要修改源代码。 怎么样才能不依赖实现类呢? 可以使用工厂模式,让UserDao的实现在在工厂中生成,而工厂是可以配置的,如下: 以上代码就是通过工厂实现的与实现类的解耦,这种情况下如果想要更新别外一个实现类,只需要修改配置文件就可以了。 再想想 如果对象有很多,且互相依赖,并且有的对象需要单例模式,有的则需要多个实例,这又怎么办呢?那就要再完善一下这个工厂类了,让工厂可以处理这些问题,这就是一个复杂一点的工厂类了。 问题二:事务控制 对于事务,可以使用Filter或是Struts2的拦截器实现,但这样有一些不好的地方: 这是在显示层管理的事务,事务太长。 有的action方法没有用到数据库操作,不需要开事务。 不能针对某个具体功方法配置事务是否是只读的,因为有的方法只是查询数据。 ... 如果能在业务层管理事务就更好了。这可以在每个业务方法中都写上管理事务的代码,但这样代码太多,也可以使用代理的方式实现(如JDK的动态代理)。 概念:控制反转IOC,Inversion of Control) public class PersonServiceBean { private PersonDao p

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档