@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD,ElementType.ANNOTATION_TYPE, ElementType.PARAMETER}) @Inherited @Documented @Qualifier(“MessageConverterQualifier”) public @interface MessageConverterRef {}
@Bean @MessageConverterRef public DocumentToABCResponseMessageConverter documentToABCResponseMessageConverter() { return new DocumentToABCResponseMessageConverter(); } @Bean @MessageConverterRef public StringToABCResponseMessageConverter stringToABCResponseMessageConverter( StringToDomBasedMessageConverter stringToDomBasedMessageConverter) { return new StringToABCResponseMessageConverter(stringToDomBasedMessageConverter); }
这是一个很好的解决方案,可以通过使用相同的限定符来确保一组bean的编译时安全性。如果您查看您的自定义注释@MessageConverterRef
,您会发现唯一真正有意义的注释是:
@Qualifier(“MessageConverterQualifier”)
)
用例:您碰巧有一组bean服务于相同的目的(就像有不同类型的转换器一样,就像您所做的那样),使用相同的Spring限定符(在您的例子中是MessageConverterQualifier),对所有这些bean进行注释是非常有礼貌的,这样它们就可以全部集成到一个列表中。
主要内容:运行项目根据切入点表达式可能会将它们应用到其他不需要通知的其他。 例如,考虑以下表达式: 如果一个新的spring bean添加了方法,并且通知将开始应用到它,尽管它可能不需要应用通知。要实现不需要它,我们可以创建一个自定义注解并注解要应用到通知的方法。 要了解上面提到的关于的概念,现在我们来写一个实现的例子。打开并使用Eclipse IDE,并按照以下步骤创建一个Spring应用程序: 更新在Sprin
我已经用自定义注释注释了Spring bean,但似乎Spring在创建bean后删除了我的自定义注释。 第二步不行,我的自定义注释丢失了。(可能是到期的代理文件) 我的豆子 我的一个自定义注释的示例 findAndDoStuffWithAnnotatedThings Bean中出错的内容被传递到一个类,在该类中,我的自定义注释得到验证,但我的验证程序找不到任何注释。(Util使用isAnnota
我有一个实体类称为和一个仓库声明如下: 自定义存储库的定义如下: 和 下面是另一个堆栈溢出问题中描述的内容:如何向Spring数据JPA添加自定义方法 现在,IntelliJ给了我一个警告: 我尝试将这些注释添加到中,但没有一个成功: 但都不管用。显然有些是错的,但我在试验。正确的注释是什么。 使用,我得到了以下错误:
我正在尝试使用Spring安全注释,如@PreAuthorize和@安全,但我希望评估用户不是在一个角色上,而是他们是否拥有对特定实体的权限,在这种情况下是一家公司。在我的控制器中,我收到一个超文本传输协议请求,其中包含一个firmId作为参数,我想确保这个用户被允许进入这家公司。是否可以使用当前的Spring安全注释?。我正在寻找一个优雅的解决方案,我一直在寻找自定义约束验证器作为jsr303规
在我的Spring Boot项目中,我创建了一个自定义注释,其中validator扩展了ConstraintValidator,以验证RequestBody中的一些字段。注释对于非嵌套字段可以很好地工作,但对于嵌套字段不调用验证器。 我的注释如下所示: 我的验证类: 它在这样的情况下工作正常: 但是当放在嵌套对象上时,不会调用验证器: 类在我的中的用法: 关于如何解决这个问题有什么想法吗?我已经尝
我有一个简单的MVC控制器,我用我的自定义注释对它进行了注释: 我的自定义注释与一个方面链接,当验证不成功时,该方面会抛出。 所以现在的行为是,当验证失败时,我被重定向到500错误页面。我的目标是留在同一个页面并将拒绝的消息添加到: 我还没有找到这样做的方法,我找到的唯一方法是更改所有逻辑,不使用注释,同时在控制器代码中使用带有try/catch的验证服务。 当方面抛出这个异常时,有什么方法可以处