• Spring boot -mongodb


    1.更接近原生mongodb
    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 MongoClient(), "database"); 
    mongoOps.insert(new Person("Joe", 34)); 
    log.info(mongoOps.findOne(new Query(where("name").is("Joe")), Person.class)); mongoOps.dropCollection("person"); 
    } } 
    2.@Configuration public class AppConfig { 
    /* * Use the standard Mongo driver API to create a com.mongodb.MongoClient instance. */
    public @Bean MongoClient mongoClient() {
    return new MongoClient("localhost");
    } } 3.@Configuration
    public class AppConfig {
    /* * Factory bean that creates the com.mongodb.MongoClient instance */
    public @Bean MongoClientFactoryBean mongo() {
    MongoClientFactoryBean mongo = new MongoClientFactoryBean();
    mongo.setHost("localhost"); return mongo; } } 4. http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd

      

    5.spring与mongodb的整合
    <context:property-placeholder location="classpath:/com/myapp/mongodb/config/mongo.properties"/>
    
    <mongo:mongo-client host="${mongo.host}" port="${mongo.port}">
      <mongo:client-options
         connections-per-host="${mongo.connectionsPerHost}"
         threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
         connect-timeout="${mongo.connectTimeout}"
         max-wait-time="${mongo.maxWaitTime}"
         auto-connect-retry="${mongo.autoConnectRetry}"
         socket-keep-alive="${mongo.socketKeepAlive}"
         socket-timeout="${mongo.socketTimeout}"
         slave-ok="${mongo.slaveOk}"
         write-number="1"
         write-timeout="0"
         write-fsync="true"/>
    </mongo:mongo-client>
    
    <mongo:db-factory dbname="database" mongo-ref="mongoClient"/>
    
    <bean id="anotherMongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
      <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
    </bean>
    MongodbTemplate一旦配置好,是线程安全的的,可以跨多个实例使用
    @Configuration
    public class AppConfig {
    
      public @Bean MongoClient mongoClient() {
          return new MongoClient("localhost");
      }
    
      public @Bean MongoTemplate mongoTemplate() {
          return new MongoTemplate(mongoClient(), "mydatabase");
      }
    }

    mongodb的构造函数:
    MongoTemplate(MongoClient mongo, String databaseName): 
    MongoTemplate(MongoDbFactory mongoDbFactory): 
    MongoTemplate(MongoDbFactory mongoDbFactory, MongoConverter mongoConverter): 
    
    <mongo:mongo-client host="localhost" port="27017"/>
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
      <constructor-arg ref="mongoClient"/>
      <constructor-arg name="databaseName" value="geospatial"/>
    </bean>
    

     官方推荐使用MongoOperations.对mongodb进行操作..

    public class MongoApp {
      private static final Log log = LogFactory.getLog(MongoApp.class);
      public static void main(String[] args) {
        MongoOperations mongoOps = new MongoTemplate(new SimpleMongoDbFactory(new MongoClient(), "database"));
       Person p = new Person("Joe", 34);
        // Insert is used to initially store the object into the database.
        mongoOps.insert(p);
        log.info("Insert: " + p);
        // Find
        p = mongoOps.findById(p.getId(), Person.class);
        log.info("Found: " + p);
        // Update
        mongoOps.updateFirst(query(where("name").is("Joe")), update("age", 35), Person.class);
        p = mongoOps.findOne(query(where("name").is("Joe")), Person.class);
        log.info("Updated: " + p);
        // Delete
        mongoOps.remove(p);
        // Check that deletion worked
        List<Person> people =  mongoOps.findAll(Person.class);
        log.info("Number of people = : " + people.size());
        mongoOps.dropCollection(Person.class);
      }
    }

      

  • 相关阅读:
    http://www.cnblogs.com/zhengyun_ustc/p/55solution2.html
    http://www.cnblogs.com/carekee/articles/1854674.html
    http://www.blogjava.net/xylz/archive/2010/07/08/325587.html
    http://honda418.iteye.com/blog/337052/
    解决myeclipse每次启动注册码过期输入注册码
    JavaScript只能为汉字
    解决 不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接
    websphere变成英文了怎么变回中文
    【技术贴】解决MySql连接不上 ip远程连接Host is not allowed to conn
    【技术贴】解决bug mantisbt APPLICATION ERROR #1502 没有找到类别
  • 原文地址:https://www.cnblogs.com/dibinbin/p/9444764.html
Copyright © 2020-2023  润新知