Have a comprehensive look at new features in Spring Data release train Lovelace. Including selected new features, enhancements, compatibility improvements and language extensions for Kotlin.
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ https://pixnio.com/de/landschaften/nacht/astronomie-galaxie-himmel-dunkel-daemmerung-konstellation-dunkel-nacht License: PD 2 Augusta Ada King (Ada Lovelace) was an English mathematician known for her work on Charles Babbage’s proposed mechanical general-purpose computer, the Analytical Engine. (1815-1852)
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 4 Image: https://pixnio.com/de/landschaften/wald/holz-natur-sommer-pflanzen-rasen-dawn-farn-landschaft-baum-blatt-umwelt License: PD Data Commons
2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 0 10 20 30 40 Default Deferred Lazy Bootstrap Time (less is better) https://pixnio.com/de/landschaften/himmel/vogel-flug-tageslicht-blauer-himmel-wolke-wind-klima License: PD
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 8 JPA https://pixnio.com/de/landschaften/meer/meer-natur-dawn-wasser-meer-sonne-sonnenuntergang-dammerung-himmel-strand License: PD
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 13 JDBC https://pixnio.com/de/landschaften/sonnenschein/sonnenschein-landschaft-sonnenuntergang-berg-himmel-sonne-sonnenaufgang License: PD
2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ JDBC Repositories 14 Spring Data JDBC 2:00pm | National Harbor 4-5 interface LegoSetRepository extends CrudRepository<Lego, Integer> { @Query("SELECT m.name model_name, m.description, l.name set_name FROM model m JOIN lego_set l ON m.lego_set = l.id WHERE :age BETWEEN l.min_age and l.max_age") List<ModelReport> reportModelForAge(@Param("age") int age); @Modifying @Query("UPDATE model SET name = lower(name) WHERE name !<> lower(name)") int lowerModelName(); } spring-projects/spring-data-examples jdbc/basic
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 15 R2DBC sneak peek https://pixnio.com/de/landschaften/narrows-landschaft/wasserfall-hohle-strom-wasser-natur-fluss-landschaft-stein License: PD
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 17 MongoDB https://pixnio.com/de/landschaften/blatt-blatter/grunes-blatt-flora-natur-baum-sommer-garten License: PD
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 22 https://pixnio.com/de/tapeten/sonnenuntergang-sonne-sonnenuntergang-kugel-himmel-schneeflocke-frost-kristall-landschaft License: PD Gemfire Geode Apache
2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Boot for Apache Geode and Pivotal Gemfire Health Indicators for • Cache • Disk Stores • Regions • Pools • Indexes • Event Queues • … 23 Spring Session Support Scaling Spring Boot Apps watch the replay!
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 24 Redis https://pixnio.com/de/landschaften/gletscher/hoehe-wolken-kaelte-frost-gletscher-eis-eisberg-winter License: PD
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ https://pixnio.com/de/landschaften/gletscher/hoehe-wolken-kaelte-frost-gletscher-eis-eisberg-winter License: PD Query By Example 25 class RedisRepository extends CrudRepository<Person, String>, QueryByExampleExecutor<Person> { } spring-projects/spring-data-examples redis/repositories Example<Person> example = Example.of(new Person().withLastname("stark")); Iterable<Person> starks = repository.findAll(example);
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ https://pixnio.com/de/landschaften/gletscher/hoehe-wolken-kaelte-frost-gletscher-eis-eisberg-winter License: PD Write to Master read from Replica (aka Slave) 26 @Configuration class WriteToMasterReadFromSlaveConfiguration { @Bean public RedisConnectionFactory connectionFactory() { LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder() .readFrom(ReadFrom.SLAVE_PREFERRED) .build(); RedisStandaloneConfiguration serverConfig = new RedisStandaloneConfiguration("server", 6379); return new LettuceConnectionFactory(serverConfig, clientConfig); } }
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 29 Cassandra https://pixnio.com/de/tiere/insekten-ungeziefer/spinnen/spinne-netz-zweig-falle-faden-insekt-tier License: PD
2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Lifecycle Events 30 public class BeforeConvertListener extends AbstractCassandraEventListener<Person> { @Override public void onBeforeSave(BeforeSaveEvent<Person> event) { !// does some auditing manipulation, set timestamps, whatever } }
2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Fluent Template API 31 List<User> result = template.query(User.class) .matching(query(where("jedi").is(true))) .all()
2013-2018 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Fluent Template API (with Kotlin) 32 val result = template.query<User>() .matching(query(where("jedi").isEqualTo(true))) .all()
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 33 Neo4j https://pixnio.com/de/universum/galaxy-abstrakt-astronomie-konstellation-dunkelheit License: PD
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Safe Harbor Statement The following is intended to outline the general direction of Pivotal's offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation. 36