gpt4 book ai didi

java - 关于 Spring @Autowired 和 Spring JDBC 的问题

转载 作者:行者123 更新时间:2023-11-30 03:04:57 34 4
gpt4 key购买 nike

我有一些问题。

  1. 在这种情况下@Autowired不是更好吗?
  2. 在哪种情况下,我们必须选择Spring-JDBCSpring-Hibernate
  3. 如果我们 autowire 会发生什么所有的物体?

请帮我解决这个问题

最佳答案

<强>1。在哪种情况下 @Autowired 不是更好的选择?

Autowiring 就是为了简化依赖注入(inject)。一开始这似乎很容易而且利润丰厚,但后来你会意识到它在大型现实项目中是不可维护的。

Spring 中的默认 Autowiring 是by-Type。当我有多个特定类的实例时,我不喜欢它,并且我必须强制 Spring 解析注入(inject) by-Name 并且必须使用额外的 @Qualifier 。在这种情况下,我更喜欢使用 JAVAX @Resource

此外,有时您可能会遇到必须根据属性/参数创建和注入(inject) Bean 的情况。在这种情况下,@Autowired 可能不起作用,您可能必须选择基于 XML 的配置。

<强>2。在什么场景下,我们必须选择 Spring-JDBC 而不是 Spring-Hibernate?

在 JDBC 与 Hibernate 之间进行选择完全取决于您的项目以及您认为自己能够适应 Hibernate 之类的东西的程度。这两种实现确实都非常快。这两者都有各自的优点和缺点。

使用Spring 的 JDBCTemplate 会更容易一些,因为它只是 native JDBC 本身的包装器。这里唯一的问题是,您可能最终会编写数千行代码,一旦您的项目开始增长,这些代码就很难维护。

使用 Hibernate 将产生更干净、更简单的代码,易于维护,但这里的开销可能是学习 Hibernate 并以某种方式思考以使其适合您的项目。

<强>3。如果我们 Autowiring 所有对象会发生什么?

这取决于您的项目需求。 @Autowire 仅用于注入(inject)依赖项。有时,我们会遇到任何特定类的多个实例,在这种情况下,为了避免使用 @Qualifier@Autowired 来消除歧义,您可以选择将两个注释替换为带有 @Resource 的单个注释。

此外,有时您会发现通过基于 XML 的配置注入(inject)依赖项 Bean 比使用 @Autowired 更好。

如果您 Autowiring 所有类,也没有什么坏处。正如我之前所说,这完全取决于您的项目需求。

关于java - 关于 Spring @Autowired 和 Spring JDBC 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35031379/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com