8
回答
Spring入门理解
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

1.为什么好多spring的项目要有一个interface然后有一个实现类,接口的作用是什么,是为了实现低耦合吗?

2.在spring中xml主要扮演什么角色?

举报
吃西瓜
发帖于3年前 8回/438阅
共有8个答案 最后回答: 3年前

个人理解
1. 使用接口除了实现依赖倒转降低耦合度这一个属于面向对象设计原则的问题以外,Spring还面对一个更现实的问题,AOP是基于代理的,但JDK自带的Proxy必须是基于接口的,在默认配置下没接口,代理是无法实现的。(当然Spring额外提供了基于cglib的实现)

2. xml在Spring3.0中它是配置的一部分和配置的入口,特别是会变动或做底层支持的bean定义的地方,即使是使用注解简化配置,在阅读代码的时候仍然需要从xml配置文件入手。

第一个问题同楼上

第二个问题,高可读性与灵活的配置,Spring的相关配置内容均可以由代码实现。但约定俗成写成xml文件,第一在修改起来方便快捷。例如修改个sessionfactory,或者对数据库进行代管(虽然我不喜欢,我用了另外的方式)第二通过xml,可读性非常强。如果你在加入一些注释内容,即使是运维人员也可以帮助你修改配置。

1.接口有利于多种实现。

2.有的是配置spring运行时必要的参数,有的是记录bean的信息等,看具体是什么配置文件。

不一定都要接口,想单web应用,我就觉得过度冗余。像一些service这一层的接口,根本没建立接口必要。本身这一层服务就不存在多态的考虑。我这边原则是需要多态是再重构不及。

什么都用接口就过度设计了。如果是框架那肯定用接口,只是单一的应用就直接用类吧,Spring不是必须用接口,这个只是最佳实践,但是针对小项目的话没这个必要。

1.一方面,接口主要作用是泛化,即对于一种业务的多种实现。另一方面,在spring中,为了实现IOC,使实现依赖于抽象。 2.使用xml主要是为了统一管理bean和POJO的热插拔。在项目运行的过程中,我们只需要修改xml文件而不需要修改class,这样更易维护。
顶部