Java/J2EE标准实践和设计选择
我有几个设计/架构问题总是出现在我们的店里。我说的是“我们的”,而不是我本人。一些决策是在J2EE首次引入时做出的,因此存在一些不好的设计选择和一些好的设计选择Java/J2EE标准实践和设计选择,java,unit-testing,testing,jakarta-ee,Java,Unit Testing,Testing,Jakarta Ee,我有几个设计/架构问题总是出现在我们的店里。我说的是“我们的”,而不是我本人。一些决策是在J2EE首次引入时做出的,因此存在一些不好的设计选择和一些好的设计选择 在web环境中,如何使用过滤器。什么时候应该使用J2EE过滤器,什么时候不应该?是否可能有许多过滤器,特别是如果您有太多的逻辑在他们。例如,在我们的身份验证过程中有很多逻辑。如果您是此用户,请转到此网站,如果不是,请转到其他网站。调试很困难,因为一个URL路径可能最终呈现不同的目标页面 JSP文件中替换值的属性资源捆绑文件:Java社区
过滤器有助于移动逻辑(如用户已通过身份验证)以正确处理此问题,因为您不希望在每个页面中都使用此逻辑 因为您没有中央控制器,所以听起来您的过滤器是为这个功能服务的,这很好,但是,正如您所提到的,它确实使调试更加困难 这就是单元测试可以派上用场的地方,因为您可以测试不同的情况,分别使用每个过滤器,然后在容器外部使用链中的所有过滤器,以确保其正常工作 单元测试确实需要规范,但是,如果规则是没有单元测试就没有任何东西可以交给QA,那么它可能会有所帮助,并且有许多工具可以帮助生成测试,所以您只需要编写测试。在调试之前,编写或更新单元测试,并显示单元测试失败,因此问题重复出现 这将确保错误不会返回,并且您已经修复了它,并且您已经更新了单元测试
对于资源束。如果你确信你永远不会支持另一种语言,那么当你重构时,你就可以不再需要捆绑包了,但是,我认为如果文本实际上在一个地方,那么进行拼写/语法更正就更容易了。过滤器有助于移动逻辑,例如用户经过身份验证的逻辑,以正确处理这个问题,因为你不希望每页都有这样的逻辑 因为您没有中央控制器,所以听起来您的过滤器是为这个功能服务的,这很好,但是,正如您所提到的,它确实使调试更加困难 这就是单元测试可以派上用场的地方,因为您可以测试不同的情况,分别使用每个过滤器,然后在容器外部使用链中的所有过滤器,以确保其正常工作 单元测试确实需要规范,但是,如果规则是没有单元测试就没有任何东西可以交给QA,那么它可能会有所帮助,并且有许多工具可以帮助生成测试,所以您只需要编写测试。在调试之前,编写或更新单元测试,并显示单元测试失败,因此问题重复出现 这将确保错误不会返回,并且您已经修复了它,并且您已经更新了单元测试
对于资源束。如果你确信你永远不会支持另一种语言,那么当你重构的时候,你就可以不再需要捆绑包了,但是,我认为如果文本实际上在一个地方,那么拼写/语法更正就更容易了