代码之家  ›  专栏  ›  技术社区  ›  Shadowman

SEAM:有效使用@BypassInterceptors?

  •  7
  • Shadowman  · 技术社区  · 15 年前

    我想知道社区能给我什么建议来使用 @BypassInterceptors 使用Seam编程时的注释?我一直在阅读有关提高Seam应用程序性能的文章,而且每篇文章都提到添加此注释可以提高性能。我的问题是,它应该在哪里应用?有没有一般的规则说“当编写一个没有XXX的组件时,您可以安全地应用它?” "? 例如,我应该将其应用于我的实体类吗?刀呢?我很想知道其他人都在做什么,以及在正确应用它时,你看到了什么样的性能提高。

    3 回复  |  直到 15 年前
        1
  •  9
  •   Community Mohan Dere    9 年前

    如果你确定 你不需要拦截器功能,你可以依靠@BypassInterceptor注解来禁用拦截器。功能包括

    等等。。。

    question 如果您知道反射可以增加多少性能开销,那么可以通过使用

    getter's和setter's

    如果你有

    @Name("personManager")
    public class PersonManager {
    
        private @In Person person;
    
    }
    
    <h:inputText value="#{person.name}"/>
    

    你可以

    @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}"/>
    
        2
  •  3
  •   Shervin Asgari    15 年前

    根据经验,例如,如果您正在对一个不使用Seam中任何拦截器的方法进行计算,即:计算一些值,那么用 @BypassInterceptors .

    但总是这样 彻底测试 添加此批注后。我经历过一些奇怪的bug,因为我在方法和类上有一个注释,但在初始测试中没有出现。

        3
  •  3
  •   Markos Fragkakis    15 年前

    丹·艾伦(Seam in Action)关于这个主题的必读文章是 here (part 1) here (part 2) . 它涵盖了@BypassInterceptors和Seam应用程序中许多其他与性能相关的问题,例如条件呈现。

    推荐文章