【问题标题】:@Autowire in Spring春天的@Autowire
【发布时间】:2011-09-25 07:57:10
【问题描述】:

我正在尝试了解如何在 Spring 中使用 Authowire。

看到一个问题here,明白怎么用了。

但是,spring 不是在接口上工作吗?

UserService不是必须是接口吗?

【问题讨论】:

    标签: spring autowired


    【解决方案1】:

    不,你没有使用接口,但它会让你在未来的某个时候生活更简单。

    唉,就像对未来的所有预测一样,这种假设可能是错误的。在这种情况下,创建和维护接口的努力将被浪费。

    此外,现代 IDE 提供了强大的重构功能,可以用接口替换特定类型。

    【讨论】:

    • 如果我确定会有一个类实现它们,你是否建议阅读接口?
    • @Odelya:当 Spring 为您的类生成代理时,您将需要接口。比如你有一个服务,使用 Spring 的 AOP 特性引入事务,你的服务类需要一个接口,否则你会得到一个类转换异常。
    • 不一定。 Spring 可以为任何具有空构造函数的非最终类创建 CGlib 代理。 Spring+AspectJ 甚至没有这个限制。
    • 我使用事务注释。 @Ophir - 你的意思是如果我使用事务,我不需要使用接口?
    • @Odelya:正如我所说:您不必使用界面。 如果您需要,用另一个实现替换一个实现只会让事情变得更简单。如果你不需要它,接口除了让你有一种将 API 与实现分开的心态之外没有任何优势。
    猜你喜欢
    • 2011-09-23
    • 2011-01-02
    • 2012-01-03
    • 2011-06-28
    • 2017-08-07
    • 1970-01-01
    • 2011-11-28
    • 2020-10-13
    • 2016-05-25
    相关资源
    最近更新 更多