netflix_学习Netflix管理员–第2部分
netflix
為了繼續(xù)上一篇有關(guān)Netflix Governator的一些基礎(chǔ)知識的文章,在這里,我將介紹Netflix Governator帶給Google Guice的另一項增強功能–生命周期管理
生命周期管理本質(zhì)上提供了進入對象所經(jīng)歷的不同生命周期階段的鉤子,以引用有關(guān)Governor的Wiki文章 :
為了說明這一點,請考慮以下代碼:
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!!");} }在這里,已經(jīng)使用@PostConstruct和@PreDestroy批注對兩種方法進行了注釋,以掛鉤到此對象的管理者生命周期的這些特定階段。 整潔的是,這些批注不是特定于Governor的,而是現(xiàn)在烘焙到JDK中的JSR-250批注。
對該類調(diào)用測試將適當(dāng)?shù)卣{(diào)用帶注釋的方法,這是一個示例測試:
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
總結(jié)
以上是生活随笔為你收集整理的netflix_学习Netflix管理员–第2部分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lock.lock_HibernateC
- 下一篇: linux的vi命令大全(vi linu