Tôi đã cố gắng để tạo ra Hibernate Validator đậu, và chạy vào vấn đề này tạo ra một bean từ phương pháp nhà máy tĩnh trong lớp khác. Tôi tìm thấy một cách Spring để có được Validator bean của tôi khởi tạo (giải pháp ở phía dưới), nhưng vấn đề chính nó vẫn chưa được giải quyết. Trình xác thực được sử dụng làm trường hợp mẫu ở đây.Khởi tạo bean mùa xuân từ phương thức tĩnh từ một lớp khác?
Đây là cách tôi tạo ra các ví dụ Validator trong Java
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Đây là cách tôi đã cố gắng để tạo ra các hạt trong 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" />
Những gì tôi hiểu là trong "factory- phương thức "bạn chỉ có thể truy cập các phương thức tĩnh được định nghĩa trong lớp được định nghĩa trong tham số" lớp ". Kể từ khi buildDefaultValidatorFactory() phương pháp là tĩnh tôi không thể tạo ra một thể hiện của Validation và cung cấp cho nó là "nhà máy-đậu" cho validatorFactory như thế này:
<bean id="validation" class="javax.validation.Validation" />
<bean id="validatorFactory"
class="javax.validation.ValidatorFactory"
factory-bean="validation"
factory-method="buildDefaultValidatorFactory" />
này kết thúc lên bị lỗi nhắn
" Kiểm tra xem một phương thức với tên cụ thể tồn tại và nó là không tĩnh "
Câu hỏi là làm thế nào bạn sẽ tạo ra đậu bằng hiện vật này về một tình huống trong mùa xuân?
Đây là cách tôi giải quyết vấn đề Validator:
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
Tên lớp học ở đó để minh họa những gì tôi muốn làm. Như tôi đã nói "Điều tôi hiểu là trong" phương pháp nhà máy ", bạn chỉ có thể truy cập các phương thức tĩnh được định nghĩa trong Lớp được định nghĩa trong tham số" lớp "." – Spaideri
Điều đó là đúng - nếu bạn đưa ra tham số 'lớp', phương thức factory phải là một phương thức tĩnh của lớp đó, như đã thấy trong việc tạo' validatorFactory'. –