Это продолжение вопроса: spring ldap 2.0.1 заменяет OdmManager устарел
Вот фрагмент теста JUnit:
@Autowired
private LdapTemplate ldapTemplate;
@Autowired
private ObjectDirectoryMapper objectDirectoryMapper;
@Before
public void setUp() {
ldapTemplate.setObjectDirectoryMapper(objectDirectoryMapper);
}
Я хотел бы избежать программной установки objectDirectoryMapper, как показано в setUp(), но я не уверен, глядя на схему тега ‹ldap:ldap-template .../›, есть ли способ внедрить свойство objectDirectoryMapper
в XML, а не программно. Я могу упустить что-то очевидное...
Вот соответствующий XML. Как вы можете видеть, я пытаюсь подключить преобразователь, который является целью (обновление: на самом деле основной целью является внедрение моего пользовательского преобразователя, который будет использоваться LdapRepository<User>
:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:ldap="http://www.springframework.org/schema/ldap"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/ldap http://www.springframework.org/schema/ldap/spring-ldap.xsd">
<context:property-placeholder location="classpath:/test/ldap.properties"
system-properties-mode="OVERRIDE" />
<context:annotation-config />
<ldap:context-source id="contextSource"
password="${sample.ldap.password}"
url="${sample.ldap.url}"
username="${sample.ldap.userDn}"
base="${sample.ldap.base}" />
<ldap:ldap-template id="ldapTemplate" context-source-ref="contextSource" />
<ldap:repositories base-package="my.domain" />
...
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="my.domain.StringToRealmConverter" />
<bean class="my.domain.RealmToStringConverter"/>
</list>
</property>
</bean>
...
<bean id="conversionServiceConverterManagerBean"
class="org.springframework.ldap.odm.typeconversion.impl.ConversionServiceConverterManager">
<constructor-arg ref="conversionService"/>
</bean>
<bean id="defaultObjectDirectoryMapperBean" class="org.springframework.ldap.odm.core.impl.DefaultObjectDirectoryMapper">
<property name="converterManager" ref="conversionServiceConverterManagerBean" />
</bean>
</beans>