| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package name.tflucke.ieat2.configs;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.beans.factory.config.BeanDefinition;
- import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.core.type.filter.AnnotationTypeFilter;
- import org.apache.log4j.Logger;
- import com.mongodb.MongoClient;
- import org.mongodb.morphia.Datastore;
- import org.mongodb.morphia.Morphia;
- import org.mongodb.morphia.annotations.Entity;
- @Configuration
- @SpringBootApplication
- public class DBConfig {
- static Logger log = Logger.getLogger(DBConfig.class.getName());
- @Value("${spring.data.mongodb.database:ieat}")
- private String dbName;
-
- @Autowired
- private MongoClient mongoClient;
- @Bean
- public Datastore datastore() {
- Morphia morphia = new Morphia();
- ClassPathScanningCandidateComponentProvider entityScanner =
- new ClassPathScanningCandidateComponentProvider(true);
- entityScanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class));
- try {
- for (BeanDefinition candidate : entityScanner.findCandidateComponents("name.tflucke.ieat2.models")) {
- morphia.map(Class.forName(candidate.getBeanClassName()));
- }
- }
- catch (ClassNotFoundException cnfe) {
- log.error("Class found, then not found: ");
- log.error(cnfe);
- }
- return morphia.createDatastore(mongoClient, dbName);
- }
- }
|