什么时候在 spring mvc 中使用依赖注入?

When to use dependency Injection in spring mvc?

我正在处理一个 Spring MVC 项目,我正在处理不同类型的服务,存储库,即 class 用 @Service@Repository 注释的项目。我对几个问题感到困惑:

我是这个 java world.Any 的初学者,我们将不胜感激。 谢谢

您将 new 用于 数据对象 ,这在大多数现代体系结构中是被动的(它们不是“主动记录”)。其他所有内容都是 服务对象 ,您应该注入它们。 (您确实使用 new 的一个地方是 @Bean 方法,它是创建服务对象的“工厂”;在这种情况下,您通常将依赖项作为方法参数传递。)

注意,建议使用构造函数注入,而不是字段注入;它使您的代码更易于测试,并消除了某些类型错误的可能性。事实上,如果使用构造函数注入,则根本不需要在您的服务 class 中有任何 Spring 注释;可以使用 @Import 指令或 @Bean 配置上的方法注册 bean class.

依赖注入意味着框架是处理 classes 实例化的框架,class 的对象将被注入(感谢 @Autowired 注释)在 class 在你需要的地方。换句话说,您不需要使用 new 运算符自己实例化服务和存储库 classes,您只需要告诉框架需要注入那些 classes,这就是您使用 @ 的原因自动装配注释。

  1. 您应该 @Autowire 依赖项而不是自己实例化它。这样做,服务和回购层将松散耦合。此外,如果依赖项是自动装配的,则可以在服务的 JUnit 测试 class 中轻松注入模拟存储库。最后,使用以下内容:

    @Autowired 私人 CourseRepository crepo;

  2. 未使用以下任何构造型注释进行注释的 class 将不会出现在 Spring 的 IoC(控制反转)容器中。因此,在未使用以下任何注释进行注释的 class 中自动装配毫无意义。

    @Component、@Controller、@Service、@Repository