package demo; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.nio.charset.Charset; import org.springframework.beans.factory.InitializingBean; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.data.geo.Distance; import org.springframework.data.geo.Metrics; import org.springframework.data.geo.Point; import org.springframework.data.mongodb.gridfs.GridFsTemplate; import org.springframework.util.StreamUtils; @SpringBootApplication public class DataMongoDBApplication { private static final Point PIVOTAL_OFFICE = new Point(-122.403664, 37.781825); private static final Point TREASURE_ISLAND = new Point(-122.370834, 37.820490); private static final Point EMERYVILLE = new Point(-122.287063, 37.834998); private static final Point FERRY_BUILDING = new Point(-122.391777, 37.790787); private static final Distance FIVE_MILES = new Distance(5, Metrics.MILES); @Bean public InitializingBean seedDatabase(CarRepository repository) { return () -> { repository.deleteAll(); repository.save(new Car("Honda", "Civic", 1997, EMERYVILLE)); repository.save(new Car("Honda", "Accord", 2003, TREASURE_ISLAND)); repository.save(new Car("Ford", "Escort", 1985, PIVOTAL_OFFICE)); }; } @Bean public CommandLineRunner exampleQuery(CarRepository repository) { return (args) -> { repository.findByMakeIgnoringCase("HONDA").forEach(System.err::println); repository.findByPositionNear(FERRY_BUILDING, FIVE_MILES) .forEach(System.err::println); ; }; } @Bean CommandLineRunner exampleGridFs(GridFsTemplate fs) { return (args) -> { // Write fs.store(new ByteArrayInputStream("a-picture-of-car".getBytes()), "pic1"); // Read InputStream stream = fs.getResource("pic1").getInputStream(); System.err .println(StreamUtils.copyToString(stream, Charset.defaultCharset())); }; } public static void main(String[] args) { SpringApplication.run(DataMongoDBApplication.class, args); } }