package kr.debop4j.data.mongodb.cache;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
/**
* kr.debop4j.core.cache.mongodb.SpringMongoConfiguration
*
* @author 배성혁 ( sunghyouk.bae@gmail.com )
* @since 13. 3. 25 오후 3:36
*/
@Configuration
@EnableCaching
@ComponentScan(basePackageClasses = { UserRepository.class })
@Slf4j
public class MongoCacheConfiguration extends AbstractMongoConfiguration {
@Override
protected String getDatabaseName() {
return "debop4j_cache";
}
@Bean(name = "databaseName")
protected String databaseName() {
return getDatabaseName();
}
@Override
public Mongo mongo() throws Exception {
return mongoClient();
}
@Bean
public MongoClient mongoClient() throws Exception {
return new MongoClient("localhost");
}
@Bean
public MongoCacheManager mongoCacheManager() throws Exception {
return new MongoCacheManager(super.mongoTemplate(), 300);
}
}