Added xml support for event listener and made minor cleanup

This commit is contained in:
alex-semenyuk 2015-08-15 16:34:42 +02:00
parent 236b808d05
commit 971d62568e
6 changed files with 27 additions and 24 deletions

View File

@ -3,9 +3,8 @@ package org.baeldung.config;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.baeldung.converter.UserWriterConverter; import org.baeldung.converter.UserWriterConverter;
import org.baeldung.event.CascadingMongoEventListener; import org.baeldung.event.CascadeSaveMongoEventListener;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration; import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
@ -20,7 +19,7 @@ import com.mongodb.MongoClient;
@EnableMongoRepositories(basePackages = "org.baeldung.repository") @EnableMongoRepositories(basePackages = "org.baeldung.repository")
public class MongoConfig extends AbstractMongoConfiguration { public class MongoConfig extends AbstractMongoConfiguration {
private List<Converter<?,?>> converters = new ArrayList<Converter<?,?>>(); private List<Converter<?, ?>> converters = new ArrayList<Converter<?, ?>>();
@Override @Override
protected String getDatabaseName() { protected String getDatabaseName() {
@ -38,8 +37,8 @@ public class MongoConfig extends AbstractMongoConfiguration {
} }
@Bean @Bean
public CascadingMongoEventListener cascadingMongoEventListener(){ public CascadeSaveMongoEventListener cascadingMongoEventListener() {
return new CascadingMongoEventListener(); return new CascadeSaveMongoEventListener();
} }
@Override @Override

View File

@ -9,7 +9,7 @@ import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Field; import java.lang.reflect.Field;
public class CascadingMongoEventListener extends AbstractMongoEventListener<Object> { public class CascadeSaveMongoEventListener extends AbstractMongoEventListener<Object> {
@Autowired @Autowired
private MongoOperations mongoOperations; private MongoOperations mongoOperations;
@ -24,7 +24,7 @@ public class CascadingMongoEventListener extends AbstractMongoEventListener<Obje
final Object fieldValue = field.get(source); final Object fieldValue = field.get(source);
if (fieldValue != null) { if (fieldValue != null) {
DbRefFieldCallback callback = new DbRefFieldCallback(); FieldCallback callback = new FieldCallback();
ReflectionUtils.doWithFields(fieldValue.getClass(), callback); ReflectionUtils.doWithFields(fieldValue.getClass(), callback);

View File

@ -5,7 +5,7 @@ import java.lang.reflect.Field;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.util.ReflectionUtils; import org.springframework.util.ReflectionUtils;
public class DbRefFieldCallback implements ReflectionUtils.FieldCallback { public class FieldCallback implements ReflectionUtils.FieldCallback {
private boolean idFound; private boolean idFound;
public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException { public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException {

View File

@ -9,7 +9,7 @@ public class EmailAddress {
private String id; private String id;
private String value; private String value;
public EmailAddress(){ public EmailAddress() {
} }
public EmailAddress(String value) { public EmailAddress(String value) {

View File

@ -26,11 +26,10 @@ public class User {
@CascadeSave @CascadeSave
private EmailAddress emailAddress; private EmailAddress emailAddress;
public User(){ public User() {
} }
public User(String name, Integer age, String value) {
public User(String name, Integer age, String value){
this.name = name; this.name = name;
this.age = age; this.age = age;
this.emailAddress = new EmailAddress(value); this.emailAddress = new EmailAddress(value);

View File

@ -17,6 +17,7 @@
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongo" ref="mongo"/> <constructor-arg name="mongo" ref="mongo"/>
<constructor-arg ref="mongoConverter" />
<constructor-arg name="databaseName" value="test"/> <constructor-arg name="databaseName" value="test"/>
</bean> </bean>
@ -24,7 +25,11 @@
<mongo:repositories base-package="org.baeldung.repository" mongo-template-ref="mongoTemplate"/> <mongo:repositories base-package="org.baeldung.repository" mongo-template-ref="mongoTemplate"/>
<bean class="org.baeldung.event.BeforeConvertListener"> <bean class="org.baeldung.event.CascadingMongoEventListener">
</bean> </bean>
<mongo:mapping-converter id="mongoConverter" base-package="org.baeldung.converter">
<mongo:custom-converters base-package="org.baeldung.converter"/>
</mongo:mapping-converter>
</beans> </beans>