java – Spring应用程序中是否应该“一切”进行弹簧管理?

我们正在开发一个新的应用程序,我们想使用 Spring(大学项目!)

在编写新的Spring应用程序时,是否应该为每个对象注入Spring?

class A {
    ...
    AHelper helper = new AHelper();
    helper.doSomething();
    ...
}

class AHelper {
    public void doSomething(){}
}

>在这种情况下,应该使用setter将AHelper注入A中吗?如果A级依赖于5个助手,是否应该全部注入?这是最佳做法,如果是,我们从中得到了什么?
>此外,如果类AHelper依赖于AHelperHelper并且依赖于AHelperHelperHelper,那么是否应该在XML中配置整个依赖关系链.这对我来说感觉不对!

解决方法

在我看来,在项目开始时决定哪种对象是bean而哪些不是bean是很好的.它可以通过它们的责任来区分,或者在我的情况下是相同的,它们所在的层.这个规则很容易向其他项目伙伴解释,它最大限度地减少了项目中间的修改和意外.

所以,我通常做的事情:

>控制器,服务和存储库层是Spring bean.所有这些通常都是相互连接的,我发现了一个过度复杂的同时拥有一些bean和一些常规对象.
>模型实体不是Spring bean.如果模型实体只是POJO,那么开发通常会更简单.此外,如果您在一次操作中加载数百个并且它们都是bean,则可能导致性能不佳.
> DTO,VO ……好吧,我通常不需要它们,但如果我这样做,我将它们视为模型实体.
>实用课程.它们有三种:

>静态方法类:显然它们不能是bean.它对你没有帮助.
>简单对象,例如您自己的地图:只需将它们保留为常规对象即可.
>助手,例如CsvFileConstructor:在我看来,这些只是服务,但有些人更喜欢把它们放在util包中.无论如何,他们通常需要一些配置(在这种情况下:编码,基本路径,分隔符…),所以如果你做豆子你可以获得一些好处.

>例外,枚举,……:当然,没有豆子.

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...