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

长春网站建设新格天津网站建设诺亚

长春网站建设新格,天津网站建设诺亚,网页设计专业培训,百度推广怎么做步骤spring lazySpring框架几乎可以毫不费力地为您解决许多常见的编程问题#xff0c;但是其某些功能比其他功能鲜为人知。 在本文中#xff0c;我们将仔细研究属于该组的Lazy批注。 阅读了几个示例之后#xff0c;您应该能够将注释应用于日常开发任务。 1. 懒豆初始化 Spring的… spring lazy Spring框架几乎可以毫不费力地为您解决许多常见的编程问题但是其某些功能比其他功能鲜为人知。 在本文中我们将仔细研究属于该组的Lazy批注。 阅读了几个示例之后您应该能够将注释应用于日常开发任务。 1. 懒豆初始化 Spring的默认行为是在应用程序启动时创建所有定义的bean。 如果我们考虑到这样的初始化可能会非常耗时的事实那么在用户开始负担服务器负担之前执行繁重的操作似乎是合理的。 但是我们是否真的总是需要将所有应用程序组件加载到内存中 您可能听说过帕累托原理及其适用于软件开发的事实 。 在确定了较少使用的功能之后 值得考虑对连接的bean进行延迟初始化尤其是当它们消耗宝贵的资源时 。 如何使豆子变得懒惰 根据声明此类bean的方式有两种选择。 如果声明中使用Bean注释的Configuration类你就必须与Lazy标注来标记它 Configuration class SomeConfig {LazyBeanLazyResource lazyResource() {return new LazyResource();}} 如果bean使用组件注释之一并且在组件扫描过程中被发现则Lazy注释可以直接在bean类中使用 Lazy Component class LazyResource {//... } Lazy也可以直接在Configuration类上使用。 在这种情况下 该类中定义的所有Bean对象都将被延迟初始化。 值得记住的是 用 Lazy 标记bean 并不意味着其依赖项也被延迟了初始化。 如果您对懒豆图初始化感兴趣可以通过以下方法实现 2. 惰性注入–延迟首次创建bean的时间 在bean定义旁边 Lazy批注还可用于注入点例如构造函数构造函数的参数字段和setter 。 下面是一个在整个构造函数上的惰性注入示例 由于从Spring 4.3开始不再需要Autowired注释因此省略了它这意味着所有定义的依赖项都将受到注释的影响。 Component class RootResource {private final ResourceDependency dependency;LazyRootResource(ResourceDependency dependency) {this.dependency dependency;}} 无论使用哪种注入方法在所有情况下都将提供代理对象而不是引用实际依赖项。 重要的是要理解 如果一个关系用Lazy标记这并不意味着要延迟依赖bean的创建。 如果从属bean没有被Lazy本身标记它将由Spring容器急切地创建。 这种行为得出的结论是 延迟注入应该主要与延迟初始化一起使用 。 让我们考虑一个示例其中有两个相关的bean。 第一个bean标记有Lazy Lazy Component class LazyResource {//... } 另一个急于初始化的bean取决于第一个bean但是注入点被标记为Lazy Component class RootResource {private final LazyResource dependency;LazyRootResource(LazyResource dependency) {this.dependency dependency;}void useLazyDependency() {dependency.use();}} 在所描述的场景中当创建RootResource类的新实例时其依赖关系未初始化。 LazyResource的新实例是在实际需要时构建的 。 在此示例中这是第一次调用useLazyDependency方法的时刻。 通过从RootResource的构造函数中删除Lazy 必须在注入之前执行LazyResource Bean的初始化。 3.用Lazy注入解决循环依赖 应用程序中的循环依赖关系被认为是一种不良的设计模式但是如果您没有看到所面临问题的任何替代解决方案那么惰性注入可能会派上用场。 一旦您尝试在两个bean之间创建一个循环Spring将通过类似于以下所示的消息通知您有关此问题的信息 The dependencies of some of the beans in the application context form a cycle: ┌─────┐ | peerResource defined in file [...\dolszewski\blog\PeerResource.class] ↑ ↓ | someResource defined in file [...\dolszewski\blog\SomeResource.class] └─────┘ 为了解决这个问题bean不必被延迟初始化。 Lazy批注仅在注入点之一上是必需的。 首先将创建一个将其依赖项标记为懒惰的依赖项。 4.渴望的豆与Lazyfalse 尽管与Lazy批注的第一个关联是按需创建bean的可能性但它也可以实现相反的效果-渴望初始化。 当您遇到Lazy批注并了解其存在时很可能您没有注意到它实际上可以接受其他布尔值属性该属性指示是否应进行惰性初始化。 您的第二个想法可能是使用Lazyfalse实际上是无用的因为您只需删除注释即可实现相同的效果对吗 如果考虑一下Spring的简单默认行为那是绝对正确的但是生活并不总是那么简单。 当应用程序的启动确实很慢时您可以考虑对所有托管bean进行延迟初始化以改善开发体验。 但是 有时有些bean应该始终进行初始化即使已使用 ComponentScanlazyInit true 全局禁用了急切的初始化 。 那就是Lazyfalse进来的时候。 Lazy(false) Component class AlwaysEagerResource {//... }结论 熟悉Lazy批注的要求不是很高因为它仅接受一个属性并且只能在少数地方使用。 但是考虑到它的几种用途值得了解它的存在。 如果您发现该文章有用请与您的同事和同事分享。 您知道Lazy扮演主要角色之一的其他有用技巧吗 如果您愿意请立即在评论中添加评论。 翻译自: https://www.javacodegeeks.com/2018/03/spring-lazy-annotation-use-cases.htmlspring lazy
http://www.zqtcl.cn/news/928695/

相关文章:

  • 网站session 验证江西星子网
  • 成都高校网站建设服务公司小树建站平台
  • 宁波网站建设 慕枫科技顺德网站设计制作
  • 企业网站如何宣传wordpress 链接修改插件
  • 站长工具官网查询视频网站建设工具
  • 建设彩票网站制作网站服务器
  • 购物网站建设网站怎么购买国外的域名
  • 在线网站排名工具跨境电商卖什么产品最赚钱
  • 电商网页设计网站什么是网络营销产生的现实基础
  • 网站开发需要注意的阿里云做网站可以免备案吗
  • 网站开发后端菜鸟教程本地安装wordpress nginx
  • 网站做端口映射域名怎么做网站
  • 港口建设征收 申报网站网站内容建设与管理
  • 长沙企业网站建设较好的公司个人社保缴费比例
  • 网站备案信息页面惠安网站建设报价
  • 东莞做微网站建设十大免费软件下载
  • 做的很好的黑白网站成都小程序开发
  • 发布做任务网站wordpress新建用户
  • 郑州市东区建设环保局官方网站工作简历模板免费下载
  • 虾皮跨境电商网站公司网站建设费计入什么费用
  • 东光有做网站的吗公司装修图片大全
  • 一个域名下多个网站项目网手游
  • 网站建设竞价托管服务wordpress搬站流程
  • 做视频网站视频文件都存放在哪室内设计网站平台
  • 外贸网站建设网合肥网站设计公
  • 网站建设设计制作 熊掌号一键生成小程序商城
  • 北滘做网站企业展厅 设计 公司 平安
  • 网站做seo外链常州营销型网站建设
  • 乐清门户网站建设网络推广关键词优化公司
  • 自己做的网站被攻击了企业展厅方案设计公司