Как внедрить атрибут с помощью Spring в обработчик типов? - PullRequest
1 голос
/ 13 апреля 2019

Я настраиваю приложение, которое использует mybatis для отображения объектов в / из базы данных.

В моем файле mybatis я использую typehandler для сопоставления одного из объектов, отправляемых в базу данных.

В typeHandler я вставляю атрибут, используя пружину @resource.

Однако, когда вызывается typehandler, введенное свойство всегда равно null.

Из моего исследования я обнаружил, что mybatis устанавливает свою конфигурацию до пружинных нагрузок. Это означает, что bean-компонент нельзя вставить в обработчик, поскольку он создан после.

Кто-нибудь знает решение этой проблемы?

1 Ответ

2 голосов
/ 13 апреля 2019

Должен позволить Spring управлять обработчиком нестандартного типа, например так:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="typeHandlers">
      <array>
        <bean class="com.example.YourCustomTypeHandler">
          <!-- inject -->
          <property name="property" ref="bean"/>
        </bean>
      </array>
    </property>
</bean>
...