当前位置: 首页 > 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/385365/

相关文章:

  • 南宁门户网站有哪些怎么上传网站到ftp
  • 微享网络网站建设可以做网站的路由器
  • 网站备案做优惠券网站的js效果
  • 云南网站推广wordpress下载主题需要ftp
  • wordpress 浮动divseo获客
  • 常见的网站类型有优秀手机网站欣赏
  • 学校网站建设项目背景网站开发一般用哪个浏览器
  • 网络推广和网站推广好网站建设公司报价
  • 视频网站用什么cms做电影采集网站需要多大vps
  • 做网站运营需要学什么工业设计公司属于什么行业
  • 找做网站公司经验全网营销型网站建设公司
  • 什么是权重高的网站长沙旅游必去十大景点
  • 快速学习网站建设做网站怎么申请百度推广
  • 做国际贸易用什么网站深圳建设网站首页
  • 免费logo设计网站推荐工具类网站怎么优化seo
  • 上海网站建设多少费用举报网站赚钱
  • 做网站需要多少钱一个月百度指数分析官网
  • 网站建设的目标用户是泸州网站建设多少钱
  • 网站建站公司费用建设海外网站
  • 行业电子网站建设如何制作自媒体短视频
  • 湖南建设厅网站不良记录站群子网站开发
  • 创办一个网站要多少钱上海广告公司网站制作
  • 陕西省网站开发wordpress后台在哪里设置段落间距
  • 广州网站设计后缀分类信息网站如何优化
  • 专业做简历的网站义乌网站建设公司
  • 主机做网站中国建设银行个人网站登录
  • 网站制作那家便宜中国网站排名榜
  • 如何做条形码网站怎么搞邢台pc网站开发
  • 中山台州网站建设推广沈阳网站开发集团
  • 河北省建设工程招标投标网站学做西餐的网站