当前位置: 首页 > 知识库问答 >
问题:

如何注入Spring的Validator实现?

吴谦
2023-03-14

我开始使用JHipster v.3.5.1生成我的应用程序。

过了一段时间,我需要创建验证器,以便在使用POST创建实体时对其执行一些业务逻辑验证。所以我做了:

@Component
public class MyValidator implements Validator

然后,我尝试将其注入我的控制器(注释为@ResControl ler),但无论我尝试哪种方式,它总是会导致这样的结果:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.my.app.service.domain.MyValidator] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency.

我尝试创建bean并注入它的方法

@Autowired
private MyValidator myValidator;

@Inject
private MyValidator myValidator;

@Autowired
@Qualifier("myValidator")
private MyValidator myValidator; (with @Component("myValidator") on class)

@Inject
@Qualifier("myValidator")
private MyValidator myValidator; (with @Component("myValidator") on class)

//Below was inserted in class annotated with @Configuration
@Bean
public MyValidator myValidator() {
   return new MyValidator();
}

然而,我尝试了它-它失败了。我总是得到NoSuchBean定义异常或字段值设置为null。

我还检查了项目结构中的类位置。为了百分之百地确定它的位置,我已经将它与@Services打包在一起,这些服务都经过扫描,运行良好。没有影响。

我知道这似乎是一项相当简单的任务,我知道这种注入是可能的(我在我的工作中看到了它在项目中的实现),但不知为什么我无法在我的项目中实现。

也许我在配置中缺少一些东西?感谢您的任何帮助:)

共有1个答案

傅泉
2023-03-14

我认为您的问题是,当您在一个带有@Con人和注释的类中使用@Autow的时候,您只是引用了一个在单独的配置文件中定义的bean,也就是说,它必须在另一个文件中声明,也使用@Con人和注释。

如果你想引用另一个隐式 bean,例如用 @Component 注释的验证器,你需要在另一个也用隐式符号注释的隐式 Bean 中执行此操作,例如 @Component、@Service、@Controller 等

除非有多个类实现同一接口,否则@Autowired应该单独工作。这时您需要使用@Qualifier。

 类似资料:
  • 我需要通过@Autowired注入服务类的具体实现。 服务接口: 实现: 服务中的方法带有@ Transactional注释 现在我想将postServiceImpl注入到我的控制器中——因为我需要使用实现中的一个方法,它不在接口中: 我收到NoSuchBeanDefinitionException并显示以下消息: 没有[(…)类型的合格bean。找到依赖项的PostServiceImpl]:预计

  • 下午好 我在Bean Validator(JSR 303)中注入服务时遇到问题。我将执行验证,但我需要在数据库中验证此记录; 当我使用我的服务时,它会抛出NullPointerException; 例外: 注释: ValidatorImpl:

  • 我有一个使用Spring Batch编写的批处理作业 我在下面有一个配置文件: 我有Json线聚合如下: 我想注入对象映射器,不想在JsonLineAggregator类中创建它。我知道如何使用DI实现它吗?

  • spring-mvc-validator 是模仿 JFinal 做的一个spring版本的验证器。 教程 1、添加spring-mvc拦截器 在spring配置文件里添加拦截器 2、编写自己的验证器类(如) public class RegisterValidator extends Validator {protected void validate(HttpServletRequest req

  • 问题内容: Spring 是否可以在不扩展的情况下将JPA 对象注入到我的DAO类中?如果是,在这种情况下,Spring是否管理事务? 我试图使我的Spring配置尽可能简单: 问题答案: 是的,尽管它充满了陷阱,但由于JPA有点特殊。在代码中没有显式的Spring依赖关系的情况下,非常值得阅读有关注入JPA 和的文档: http://static.springsource.org/spring/

  • 问题内容: 我想利用spring-data-jpa和。但是我无法自动接线。(同一包中的所有其他服务均已正确接线): 结果: 由以下原因引起:org.springframework.beans.factory.BeanCreationException:创建名称为’userService’的bean时出错:注入资源依赖项失败;嵌套的异常是org.springframework.beans.facto