61 lines
1.9 KiB
Java
61 lines
1.9 KiB
Java
package com.baeldung.config;
|
|
|
|
import com.mongodb.Mongo;
|
|
import com.mongodb.MongoClient;
|
|
import com.baeldung.converter.UserWriterConverter;
|
|
import com.baeldung.event.CascadeSaveMongoEventListener;
|
|
import com.baeldung.event.UserCascadeSaveMongoEventListener;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.core.convert.converter.Converter;
|
|
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
|
import org.springframework.data.mongodb.core.convert.CustomConversions;
|
|
import org.springframework.data.mongodb.gridfs.GridFsTemplate;
|
|
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
@Configuration
|
|
@EnableMongoRepositories(basePackages = "com.baeldung.repository")
|
|
public class MongoConfig extends AbstractMongoConfiguration {
|
|
|
|
private final List<Converter<?, ?>> converters = new ArrayList<Converter<?, ?>>();
|
|
|
|
@Override
|
|
protected String getDatabaseName() {
|
|
return "test";
|
|
}
|
|
|
|
@Override
|
|
public Mongo mongo() throws Exception {
|
|
return new MongoClient("127.0.0.1", 27017);
|
|
}
|
|
|
|
@Override
|
|
public String getMappingBasePackage() {
|
|
return "com.baeldung";
|
|
}
|
|
|
|
@Bean
|
|
public UserCascadeSaveMongoEventListener userCascadingMongoEventListener() {
|
|
return new UserCascadeSaveMongoEventListener();
|
|
}
|
|
|
|
@Bean
|
|
public CascadeSaveMongoEventListener cascadingMongoEventListener() {
|
|
return new CascadeSaveMongoEventListener();
|
|
}
|
|
|
|
@Override
|
|
public CustomConversions customConversions() {
|
|
converters.add(new UserWriterConverter());
|
|
return new CustomConversions(converters);
|
|
}
|
|
|
|
@Bean
|
|
public GridFsTemplate gridFsTemplate() throws Exception {
|
|
return new GridFsTemplate(mongoDbFactory(), mappingMongoConverter());
|
|
}
|
|
}
|