2016-01-27 157 views

回答

3

1.在这种情况下@Autowired是不是更好?

自动装配是关于简化依赖注入。起初看起来很容易,而且利润丰厚,但后来你会意识到它在大型现实项目中不可维护。

默认弹簧自动装配是by-Type。我不喜欢它,当我有超过一个特定类别的实例时,我必须强制Spring解决注入by-Name并且必须使用额外的@Qualifier。在这种情况下,我更喜欢使用JAVAX @Resource

此外,有时您可能会遇到必须根据属性/参数创建和注入bean的情况。在这种情况下,@Autowired可能无法正常工作,您可能需要选择基于XML的配置。

2.在哪种情况下,我们必须比Spring-Hibernate更喜欢Spring-JDBC?

在JDBC和Hibernate之间进行选择的选择完全取决于您的项目以及您认为如何适应Hibernate。这两种实现都非常快。这两者都有各自的优点和缺点。

使用Spring's JDBCTemplate会简单一些,因为它只是本地JDBC本身的一个包装。这里唯一的事情就是你最终可能会写出数千行代码,一旦你的项目开始增长,这些代码真的很难维护。

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

3.如果我们自动装载所有对象会发生什么?

这取决于您的项目需求。 @Autowire仅用于注入依赖关系。有时候,我们遇到了任何特定类别的多个实例,并且在这种情况下,为了避免使用@Qualifier@Autowired来消除不确定性,您可以选择使用@Resource单个注释替换两个注释。

此外,有时您会发现通过基于XML的配置注入依赖bean,而不是使用@Autowired更好。

如果您正在自动装配所有课程,没有任何伤害。正如我之前所说,完全取决于您的项目需求。

+2

几乎所有可以在XML中完成的bean配置都可以在JavaConfig中更简单地完成。 – chrylis

-2

这是非常普遍的问题,你需要了解春季的基础

  1. @Autowire是只能在春天的bean可以使用注解你想注入

  2. 如果你使用hibernate比你需要spring hibernate,如果你使用常规的jdbc查询,你将需要spring jdbc

  3. 和第一节一样,你只能在spring bean上使用autowire。没有什么会发生只是将是一个糟糕的设计:)