SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
把下面的依赖加到pom.xml中的节点中
@Configuration
public class AppConfig {
public @Bean
Mongo mongo() throws UnknownHostException {
return new Mongo( "localhost" );
}
}
或者使用MongoFactoryBean创建Mongo实例
@Configuration
public class AppConfig {
public @Bean
MongoFactoryBean mongo() {
MongoFactoryBean mongo = new MongoFactoryBean();
mongo.setHost( "localhost" );
return mongo;
}
}
无论怎样,都是手工配置。 2、使用XML注册Mongo的实例
使用(Spring)XML注册Mongo实例的好处是可以方便的配置Mongo参数,还可以简单的配置集群信息。
public interface MongoDbFactory {
DB getDb() throws DataAccessException;
DB getDb(String dbName) throws DataAccessException;
}
你可以自己实现这个接口,创建Mongo实例,再返回DB的实例。
spring提供了一个基本的类:org.springframework.data.mongodb.core.SimpleMongoDbFactory,是MongoDbFactory的简单实现。
这个类以Mongo实例为参数,可以设置数据库名作为第二个可选参数;如果有更多的配置项,就使用UserCredentials参数作为第三个可选参数。
使用下面这段代码来创建MongoTemplate。里面的SimpleMongoDBFactory和Mongo实例可以手工创建,也可以通过Ico容器来实现。
public class MongoApp {
private static final Log log = LogFactory.getLog( MongoApp.class );
public static void main( String[] args ) throws Exception {
MongoOperations mongoOps = new MongoTemplate( new SimpleMongoDbFactory( new Mongo(), "database" ) );
mongoOps.insert( new Person( "Joe", 34 ) );
log.info( mongoOps.findOne( new Query( where( "name" ).is( "Joe" ) ), Person.class ) );
mongoOps.dropCollection( "person" );
}
}
如果使用Bean来配置SimpleMongoDbFactory,代码大概是这样:
@Configuration
public class MongoConfiguration {
public @Bean
MongoDbFactory mongoDbFactory() throws Exception {
return new SimpleMongoDbFactory( new Mongo(), "database" );
}
}
如果要配置用户名和密码,要使用UserCredentials类,向SimpleMongoDbFactory的构造方法传递Mongo连接的配置信息:
@Configuration
public class MongoConfiguration {
public @Bean
MongoDbFactory mongoDbFactory() throws Exception {
UserCredentials userCredentials = new UserCredentials( "joe", "secret" );
return new SimpleMongoDbFactory( new Mongo(), "database", userCredentials );
}
public @Bean
MongoTemplate mongoTemplate() throws Exception {
return new MongoTemplate( mongoDbFactory() );
}
} 4、使用XML配置MongoDbFactory实例
这种方法把所有的配置项放到独立的配置文件中,使用比较灵活,基本不需要代码来维护与Mongo连接有关的功能。
用如下代码在节点下简单配置: