Estaba tratando de crear Hibernate Validator bean, y me encuentro con este problema creando un bean del método de fábrica estático en otra clase. Encontré una forma de Spring para inicializar mi bean Validator (solución en la parte inferior), pero el problema en sí no se resuelve. El validador se usa como ejemplo de caso aquí.Inicializando Spring bean del método estático de otra clase?
Éste es cómo crear la instancia de validación en Java
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Así es como he tratado de crear el frijol en applicationContext.xml
<bean id="validatorFactory"
class="javax.validation.ValidatorFactory"
factory-method="javax.validation.Validation.buildDefaultValidatorFactory" />
<bean id="validator"
class="javax.validation.Validator"
factory-bean="validatorFactory"
factory-method="getValidator" />
Lo que entiendo es que en "fábrica método "solo se puede acceder a los métodos estáticos definidos en la clase definida en el parámetro" clase ". Desde el buildDefaultValidatorFactory() método es estático no puedo crear una instancia de validación y la doy como "fábrica de frijol" para el validatorFactory así:
<bean id="validation" class="javax.validation.Validation" />
<bean id="validatorFactory"
class="javax.validation.ValidatorFactory"
factory-bean="validation"
factory-method="buildDefaultValidatorFactory" />
Esto termina a error mensaje
" Compruebe que un método con el nombre especificado existe y que es no estático "
la pregunta es ¿cómo crear frijol en este tipo de situación en la primavera?
Esto es cómo he resuelto el problema de validación:
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
Nombre de la clase es para demostrar lo que quería hacer. Como dije "Lo que entiendo es que en" método de fábrica "solo se puede acceder a métodos estáticos definidos en la clase definida en el parámetro" clase "." – Spaideri
Eso es correcto: si proporciona el parámetro 'clase ', el método de fábrica debe ser un método estático de esa clase, como se ve en la creación de' validatorFactory'. –