当前位置: 首页 > news >正文

物流企业的网站模板网站用户模板

物流企业的网站模板,网站用户模板,网站设计的目的是什么,威海住房和城乡建设厅网站首页随着项目的复杂度的增加,我们通常会在一个业务类中注入其他过多的业务类。从而使当前的业务层扩充成一个大而全的功能模块。那么就容易出现一下问题 字段注入会让依赖关系变得不那么明显,因为你无法通过构造函数看到所有的依赖项。使用构造函数时&#…

       随着项目的复杂度的增加,我们通常会在一个业务类中注入其他过多的业务类。从而使当前的业务层扩充成一个大而全的功能模块。那么就容易出现一下问题

  • 字段注入会让依赖关系变得不那么明显,因为你无法通过构造函数看到所有的依赖项。使用构造函数时,所有必需的组件都会在方法签名中列出,使得依赖关系更加清晰。
  • 如果 @Autowired 注解的字段没有注入成功,且后续使用时没有进行空值检查,可能会导致空指针异常(NullPointerException)。构造函数注入可以确保所有必须依赖项在对象构造时被提供,当未能注入时,构造过程将失败并抛出异常。
  • 使用字段注入可能导致循环依赖问题,尤其是在两个或多个 beans 互相依赖时。Spring 容器可以通过 setter 注入来解决循环依赖,但构造函数注入则不可以。
  • 字段注入会隐藏依赖的生命周期管理特性。当需要进行作用域(如单例、原型等)的特定管理时,构造函数注入更直观,且不容易出现意外的作用域问题。

       尽管字段注入是一种简单的方法,可以快速快速获得依赖,但它并不是最佳实践。为了确保代码的可维护性、可测试性和清晰性,推荐使用构造函数注入和方法注入。通过这种方式,你可以明确依赖关系,避免潜在的问题,并提升代码的质量和可读性。

      使用字段注入

@Slf4j
@Service
@Transactional
public class StockService {@Autowiredprivate MaterialService materialService;@Autowiredprivate StorageLocationService storageLocationService;@Autowiredprivate StorageStockService storageStockService;@Autowiredprivate StorageStockMovementsService storageStockMovementsService;@Autowiredprivate StorageInboundService storageInboundService;@Autowiredprivate StorageInboundMaterialService storageInboundMaterialService;
}

    (StockService 是专门的服务组合,将多个业务服务提取到一个类中,管理它们的交互。避免违反了单一职责原则)       

       使用构造器(推荐)

@Slf4j
@Service
@Transactional
public class StockService {private final MaterialService materialService;private final StorageLocationService storageLocationService;private final StorageStockService storageStockService;private final StorageStockMovementsService storageStockMovementsService;private final StorageInboundService storageInboundService;private final StorageInboundMaterialService storageInboundMaterialService;public StockService(MaterialService materialService, StorageLocationService storageLocationService, StorageStockService storageStockService, StorageStockMovementsService storageStockMovementsService, StorageInboundService storageInboundService, StorageInboundMaterialService storageInboundMaterialService) {this.materialService = materialService;this.storageLocationService = storageLocationService;this.storageStockService = storageStockService;this.storageStockMovementsService = storageStockMovementsService;this.storageInboundService = storageInboundService;this.storageInboundMaterialService = storageInboundMaterialService;}
}

        有助于提高类的可测试性。如果项目使用了 Lombok,可以考虑使用 @Autowired 和 @AllArgsConstructor 来减少样板代码。

@Slf4j
@Service
@Transactional
@AllArgsConstructor(onConstructor = @__(@Autowired))
public class StockService {private final MaterialService materialService;private final StorageLocationService storageLocationService;private final StorageStockService storageStockService;private final StorageStockMovementsService storageStockMovementsService;private final StorageInboundService storageInboundService;private final StorageInboundMaterialService storageInboundMaterialService;
}

http://www.yayakq.cn/news/80682/

相关文章:

  • 怎样建立一个免费的网站网站申请微信登录
  • 企业网站 .net手机软件开发应用
  • 厦门物流网站建设全国旅游大型网站建设
  • 黄陂网站建设h5动画制作
  • 商城app网站开发怎么确认网站是什么语言做的
  • 电子商务网站的建设论文公众号开通
  • 建设企业网站登录秦皇岛网站建设费用
  • 专业的网站建站公司m大宅高端设计公司首页
  • 软件自学网官方网站asp.net jsp 网站开发
  • 网站制作最便宜网站访客qq统计系统
  • 英文网站模板ps做网站首页效果图
  • 厚街网站建设价格广告设计主要做哪些
  • 酒泉网站建设设计东营造价信息网
  • 网站建设收费标准精英开发公司户型设计会议
  • 如何别人看自己做的网站作网站流程
  • 网站建设有什么系统东四网站建设
  • 不孕不育网站建设总结wordpress文章新窗口打开
  • 镇江网站优化哪家好有了域名怎么建设网站
  • 做辅食网站网站开发团队成员介绍
  • 山东省乡镇网站建设wordpress动态行情页面
  • 怎么做frontpage网站工程公司招聘
  • 建行网站首页登录app制作教程培训
  • 织梦怎么做的网站织梦网站字体
  • 织梦后台搭建网站并调用标签建设做网站高校视频
  • 品牌网站建设的要点c在线编程网站
  • 代做课程设计的网站苏州电子商务网站设计
  • 10m光纤做网站成都花园设计公司
  • 珠海中英文网站建设店群智能营销管理系统
  • 发表评论的wordpress网站模板北京软装设计公司前十名
  • 青岛网站推广招商北京哪有建网站公司或个人的