Java SEAM:有效使用@Bypass拦截器?
我想知道在使用Seam编程时,社区可以给我什么建议来使用Java SEAM:有效使用@Bypass拦截器?,java,performance,annotations,seam,interceptor,Java,Performance,Annotations,Seam,Interceptor,我想知道在使用Seam编程时,社区可以给我什么建议来使用@BypassInterceptors注释?我一直在阅读有关提高Seam应用程序性能的文章,每篇文章都提到添加此注释可以提高性能。我的问题是,它应该在哪里应用?是否有一般规则规定“在编写执行XXX的组件时,您可以安全地应用@BypassInterceptors”?例如,我应该将其应用于实体类吗?刀呢?我很想知道其他人都在做什么,以及在正确应用它时您看到了什么样的性能提升。如果您确定不需要拦截器功能,您可以依靠@BypassIntercept
@BypassInterceptors
注释?我一直在阅读有关提高Seam应用程序性能的文章,每篇文章都提到添加此注释可以提高性能。我的问题是,它应该在哪里应用?是否有一般规则规定“在编写执行XXX的组件时,您可以安全地应用@BypassInterceptors
”?例如,我应该将其应用于实体类吗?刀呢?我很想知道其他人都在做什么,以及在正确应用它时您看到了什么样的性能提升。如果您确定不需要拦截器功能,您可以依靠@BypassInterceptor annotation来禁用拦截器。功能包括
- 双射(@In-@Out)
- 事务管理
@Name("personManager")
public class PersonManager {
private @In Person person;
}
<h:inputText value="#{person.name}"/>
但不要忘记(注意它的最新值属性)
这只是亚瑟文章的后续内容 根据经验,例如,如果您正在对一个不使用Seam中任何拦截器的方法进行计算,即:计算一些值,那么使用
@BypassInterceptors
标记该方法是一件好事
但在添加此注释后,始终要进行彻底的测试。我经历了一些奇怪的bug,因为我在方法和类上做了注释,但在最初的测试中没有出现
如果您不确切知道自己在做什么或注释在做什么,那么让它去做是更明智的 Dan Allen(Seam in Action)关于这一主题的必读文章是和。它涵盖了@BypassInterceptors和Seam应用程序中许多其他与性能相关的问题,例如条件渲染。+1,这是一个非常有趣的问题。
@Name("personManager")
public class PersonManager {
private Person person;
public Person getPerson() {return this.person;}
public void setPerson(Person person) {this.person = person;}
}
<h:inputText value="#{personManager.person.name}"/>