netflix

为了继续上一篇有关Netflix Governator的一些基础知识的文章,在这里,我将介绍Netflix Governator带给Google Guice的另一项增强功能–生命周期管理

生命周期管理本质上提供了进入对象所经历的不同生命周期阶段的钩子,以引用有关Governor的Wiki文章 :

Allocation (via Guice)|v
Pre Configuration|v
Configuration|V
Set Resources|V
Post Construction|V
Validation and Warm Up|V-- application runs until termination, then... --    |V
Pre Destroy

为了说明这一点,请考虑以下代码:

package sample.gov;import com.google.inject.Inject;
import com.netflix.governator.annotations.AutoBindSingleton;
import sample.dao.BlogDao;
import sample.model.BlogEntry;
import sample.service.BlogService;import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;@AutoBindSingleton(baseClass = BlogService.class)
public class DefaultBlogService implements BlogService {private final BlogDao blogDao;@Injectpublic DefaultBlogService(BlogDao blogDao) {this.blogDao = blogDao;}@Overridepublic BlogEntry get(long id) {return this.blogDao.findById(id);}@PostConstructpublic void postConstruct() {System.out.println("Post-construct called!!");}@PreDestroypublic void preDestroy() {System.out.println("Pre-destroy called!!");}
}

在这里,已经使用@PostConstruct和@PreDestroy批注对两种方法进行了注释,以挂钩到此对象的管理者生命周期的这些特定阶段。 整洁的是,这些批注不是特定于Governor的,而是现在烘焙到JDK中的JSR-250批注。

对该类调用测试将适当地调用带注释的方法,这是一个示例测试:

mport com.google.inject.Injector;
import com.netflix.governator.guice.LifecycleInjector;
import com.netflix.governator.lifecycle.LifecycleManager;
import org.junit.Test;
import sample.service.BlogService;import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;public class SampleWithGovernatorTest {@Testpublic void testExampleBeanInjection() throws Exception {Injector injector  = LifecycleInjector.builder().withModuleClass(SampleModule.class).usingBasePackages("sample.gov").build().createInjector();LifecycleManager manager = injector.getInstance(LifecycleManager.class);manager.start();BlogService blogService = injector.getInstance(BlogService.class);assertThat(blogService.get(1l), is(notNullValue()));manager.close();}}

长期以来,Spring Framework一直支持类似的机制 -因此,基于完全相同的基于JSR-250的注释也适用于Spring bean。

如果您有兴趣进一步探索它, 这是我的GitHub项目,其中包含带有生命周期管理的示例。

翻译自: https://www.javacodegeeks.com/2015/01/learning-netflix-governator-part-2.html

netflix

netflix_学习Netflix管理员–第2部分相关推荐

  1. netflix_学习Netflix管理员–第1部分

    netflix 最近几天,我一直在与Netflix Governator合作,并尝试使用Governator尝试一个小样本,以将其与Spring Framework的依赖项注入功能集进行比较. 以下内 ...

  2. 学习Netflix管理员–第1部分

    最近几天,我一直在与Netflix Governator合作,并尝试使用Governator尝试一个小样本,以将其与Spring Framework的依赖项注入功能集进行比较. 以下内容并不全面,我将 ...

  3. 学习Netflix管理员–第2部分

    为了继续上一篇有关Netflix Governator的一些基础知识的文章,在这里,我将介绍Netflix Governator带给Google Guice的另一项增强功能–生命周期管理 生命周期管理 ...

  4. hadoop学习-Netflix电影推荐系统

    1.推荐系统概述 电子商务网站是推荐系统应用的重要领域之一,当当网的图书推荐,大众点评的美食推荐,QQ好友推荐等等,推荐无处不在. 从企业角度,推荐系统的应用可以增加销售额等等,对于用户而言,系统仿佛 ...

  5. 我学习网络管理员的第一步---各个时期的基本要求

    一.在宿舍中的演练---5台左右计算机的网络环境 ●网络的基础知识:包括对网络认识.分类及拓扑结构的理解: ●网络的搭建:网线制作及网络设备的连接,如何制作网线,布线的注意事项及网络中设备的互联: ● ...

  6. 【计算机毕业设计】061微信互助学习平台

    一.系统截图(需要演示视频可以私聊) 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟.本文介绍了微信互助学习平台的开发全过程.通过分析微信互助学习平台管理的不足 ...

  7. springclound学习

    一.springclound学习 Netflix公司的 解决的问题:服务比较多时,我们可以在注册中心通过服务名调用

  8. 学习小组实现过程、学习心得等

    作业文档 关于JAVA Stack的实现 https://gitee.com/huuujojo/homework 先是对stack的了解,明白栈是个什么东西 然后是查阅其他的集合类在jdk中是怎么实现 ...

  9. sql server死锁_如何解决SQL Server中的死锁

    sql server死锁 In this article, we will talk about the deadlocks in SQL Server, and then we will analy ...

最新文章

  1. R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型、通过method参数指定算法名称、通过trainControl函数控制训练过程
  2. java远程线程注入_系统权限远程线程注入到Explorer.exe
  3. 【聚类算法】sklearn聚类方法详解
  4. 学习笔记(四)——JavaScript(一)
  5. 第十七节: EF的CodeFirst模式的四种初始化策略和通过Migration进行数据的迁移
  6. IDEA 启动报错could not find main class com/intellij/idea/main解决办法
  7. 宁夏大学新华学院08计算机马宁,公 示
  8. 阿里云助贫困大学生用技能点亮人生
  9. 线性反馈移位寄存器LFSR和循环冗余码CRC
  10. MongoVUE破解方法记录
  11. STM32F207SPI、I2C实验记录
  12. 2022福大数学建模赛题B题-主成分分析和单因素方差分析-附python代码
  13. input框禁止输入的四种方式
  14. No interface expected here
  15. 数据库总结(oracle)
  16. 手机移动web页面的排版与布局一点经验(尺寸单位兼容行。)
  17. python百度网盘API分片上传实现,纯代码
  18. 计算机动态网站毕业论文,动态网页设计——花之家 毕业论文
  19. dp线长什么样子_显示器上的DP接口是什么接口?
  20. “影响力” v.s. “营销”

热门文章

  1. P3889-[GDOI2014]吃【线段树】
  2. nssl1436-赛艇表演【最短路】
  3. P4168-[Violet]蒲公英【分块】
  4. jzoj1158-荒岛野人【扩欧,gcd,同余方程】
  5. javafx爬取网页并且初始化网页数据
  6. Java多线程神器:join使用及原理
  7. java中如何对对象排序?
  8. springmvc报错 nested exception is org.mybatis.spring.MyBatisSystemException:
  9. ssm(Spring+Spring mvc+mybatis)Service层接口——IDeptService
  10. JS中函数的prototype属性和对象的__proto__属性