在我们的体系结构指南中,我们应该只从域模型或存储库实现(在基础结构层)中实例化业务异常
noClasses().that().resideOutsideOfPackages(DOMAIN).or(areImplementing(Repository.class))
.should().callMethodWhere(
target(owner(isAnnotatedWith(BusinessException.class)))
.and(target(modifier(JavaModifier.STATIC))));
methods().that().areStatic()
.and().areDeclaredInClassesThat().areAnnotatedWith(BusinessException.class)
.should().onlyBeCalled().byClassesThat(areImplementing(Repository.class))
同样,这不会编译,onlybeCalled
不存在。
有人有主意吗?
我不完全确定是否有更短的形式来表达您想要的内容,但我相信下面使用自定义谓词的代码片段可以完成这项工作。
noClasses().that()
// Restriction applies to all classes outside DOMAIN package that are not Repository classes
.resideOutsideOfPackages(DOMAIN)
.and()
.areNotAssignableFrom(Repository.class)
.should()
.callMethodWhere(describe("static methods in BusinessExceptions",
// Target method may not reside in class annotated with BusinessException
methodCall -> methodCall.getTarget().getOwner().isAnnotatedWith(BusinessException.class)
// And target method may not have the static modifier
&& methodCall.getTarget()
.resolve()
.stream()
.anyMatch(m -> m.getModifiers().contains(JavaModifier.STATIC))));
我唯一不确定的一点是methodcall.gettarget().resolve()
返回一组JavaMethod类。
问题内容: 假设您的服务器目录中有很多html,css,js,img等文件。通常,互联网域中的任何用户都可以通过简单地输入完整的URL来访问这些文件,例如:http : //example.com/static- files/sub/index.html 现在,如果只希望授权用户能够加载那些文件怎么办?对于此示例,假设您的用户首先从这样的URL登录: http //example.com/logi
问题内容: 我想限制登录用户可以使用的文件,否则返回403错误或类似错误。例如,用户只有在登录后才能查看/下载。 我知道如果未登录,如何使用Flask-Login控制文件的实际显示,但是如果他们直接在浏览器中访问链接,我将不知道如何阻止访问文件。 问题答案: Flask添加了一条静态路由来提供静态文件。在生产中,通常会“短路”此路由,以便Nginx在请求到达您的应用程序之前为文件提供服务。不用添加
我有一个关于静态方法访问的问题。我有一个类,其中有4个静态方法。如代码所示: } 我正在从下面的代码调用来自onLoadShipperDetailsListCtrl()的setSortingEnable()方法: } 因此,如果我从其他类调用setSortingEnabled()方法,我会认为它是公共的,而其他方法是私有的,但它会给我一个错误:Java . lang . nosuchmethode
本文向大家介绍SpringMVC访问静态资源的方法,包括了SpringMVC访问静态资源的方法的使用技巧和注意事项,需要的朋友参考一下 在SpringMVC中常用的就是Controller与View。但是我们常常会需要访问静态资源,如html,js,css,image等。 默认的访问的URL都会被DispatcherServlet所拦截,但是我们希望静态资源可以直接访问。该肿么办呢? 在配置文件:
问题内容: 我是JAVA的新手,我喜欢尝试并理解所有内容。 在JAVA中访问静态方法“ hero.returnHp()”时,我具有以下内容: 该程序运行良好,但是我注意到Eclipse发出警告,指出“应以静态方式访问hero类型的静态方法。” 当我接受自动修复时,它会更改为“ Mike.returnHp();”。到“ hero.returnHp();”。 所以我有两个问题: 1)这有什么好处? 2
问题内容: 在Java中,创建了静态方法来访问它而没有任何对象实例。这对我来说很有意义。但是最近我碰到一个奇怪的事情,Java中的静态方法也可以通过其对象实例进行访问。这对我来说似乎很奇怪。你们谁知道 Java 为什么提供此功能?允许在没有实例的情况下访问静态方法有什么意义? 问题答案: 这样做的好处是,它允许您采用实例方法并将其转换为静态方法,而无需修改任何现有代码(除 类之外),从而实现向后兼