Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The spring ecosystem in 50 min

1,081 views

Published on

Spring IO talk giving an overview of the Spring ecoystem and all it's projects

Published in: Technology

The spring ecosystem in 50 min

  1. 1. Jeroen Sterken @jeroensterken
  2. 2. @spring_io #springio17 • • @jeroensterken
  3. 3. @spring_io #springio17 • • – – –
  4. 4. @spring_io #springio17 • Related projects Spring LDAP Spring Security OAuth Spring Security Grails Spring Security SAML Spring Security Kerberos Modules (#20) spring-aop spring-aspects spring-beans spring-context spring-context-support spring-core spring-expression spring-instrument spring-instrument-tomcat spring-jdbc spring-jms spring-messaging spring-orm spring-oxm spring-test spring-tx spring-web spring-webmvc spring-webmvc-portlet spring-websocket Umbrella project Spring Cloud Config Spring Cloud Zookeeper Spring Cloud Netflix Spring Cloud Bus Spring Cloud for CF Spring CF Service Broker Spring Cloud for AWS Spring Cloud Cluster Spring Cloud Consul Spring Cloud Security Spring Cloud Sleuth Spring Cloud Data Flow Spring Cloud Stream Spring Cloud Stream App Starters Spring Cloud Task Spring Cloud Task App Starters Spring Cloud connectors Spring Cloud Starters Spring Cloud CLI Spring Cloud Contract
  5. 5. @spring_io #springio17 – • • • – Spring Cloud Config Spring Cloud Cluster Spring Cloud Stream Spring Cloud for Amazon Web Services Spring Cloud Netflix Spring Cloud Consul Spring Cloud Stream App Starters Spring Cloud connectors Spring Cloud Bus Spring Cloud Security Spring Cloud Task Spring Cloud Starters Spring Cloud for Cloud Foundry Spring Cloud Sleuth Spring Cloud Task App Starters Spring Cloud CLI Spring Cloud Cloud Foundry Service Broker Spring Cloud Data Flow Spring Cloud Zookeeper Spring Cloud Contract + spring boot
  6. 6. @spring_io #springio17 Spring security IO platform Spring Integration Spring web services Spring LDAP Spring web flow Spring batch
  7. 7. @spring_io #springio17 • • <dependencyManagement> <dependencies> <dependency> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>Brussels-SR2</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> <parent> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>Brussels-SR2</version> <relativePath/> </parent> https://maven2repo.com/io.spring.platform/platform-build
  8. 8. @spring_io #springio17 • • • • – – – – –
  9. 9. @spring_io #springio17 • • •
  10. 10. @spring_io #springio17 • @Configuration @EnableIntegration public class MyConfiguration { @Bean public IntegrationFlow myFlow() { return IntegrationFlows.from(this.integerMessageSource(), c -> c.poller(Pollers.fixedRate(100))) .channel(this.inputChannel()) .filter((Integer p) -> p > 0) .transform(Object::toString) .channel(MessageChannels.queue()) .get(); } }
  11. 11. @spring_io #springio17 Spring web services Spring LDAP Spring web flow Spring batch
  12. 12. @spring_io #springio17 Spring Cloud Spring DataSpring Boot Spring REST docs Spring Cloud Data Flow Spring Social Spring Hateoas Spring Session
  13. 13. @spring_io #springio17
  14. 14. @spring_io #springio17 Spring Boot Spring Data Data web Spring REST docs Spring Hateoas Spring Session Integration Spring Social Cloud Spring Cloud
  15. 15. @spring_io #springio17
  16. 16. @spring_io #springio17 • – – –
  17. 17. @spring_io #springio17 • – – • – –
  18. 18. @spring_io #springio17 • – • Spring Data Redis Spring Data for Apache Cassandra Spring Data for Apache Solr Spring Data Couchbase (community module) Spring Data Elasticsearch (community module) Spring Data Neo4j (community module) Spring Data Commons Spring Data JPA Spring Data KeyValue Spring Data LDAP Spring Data MongoDB Spring Data Gemfire Spring Data REST <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-releasetrain</artifactId> <version>Kay-M3</version> <type>pom</type> <scope>import</scope> </dependency>
  19. 19. @spring_io #springio17 • – – public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> { public <S extends T> save(S entity); public <S extends T> Iterable<S> save(Iterable<S> entities); public T findOne(ID id); public Iterable<T> findAll(); public void delete(ID id); public void delete(T entity); public void deleteAll(); }
  20. 20. @spring_io #springio17 • – – • Spring data Repositories/aggregates Spring HATEOAS hypermedia+ Spring data REST= “DDD & REST - Domain Driven APIs for the web” - Oliver Gierke
  21. 21. @spring_io #springio17 • – @Entity public class Person { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; private String firstName; private String lastName; ... @RepositoryRestResource(collectionResourceRel = "people", path = "people") public interface PersonRepository extends PagingAndSortingRepository<Person, Long> { List<Person> findByLastName(@Param("name") String name); }
  22. 22. @spring_io #springio17 • $ curl http://localhost:8080 { "_links" : { "people" : { "href" : "http://localhost:8080/people{?page,size,sort}", "templated" : true } } } $ curl http://localhost:8080/people { "_links" : { "self" : { "href" : "http://localhost:8080/people{?page,size,sort}", "templated" : true }, "search" : { "href" : "http://localhost:8080/people/search" } }, "page" : { "size" : 20, "totalElements" : 0, "totalPages" : 0, "number" : 0 } }
  23. 23. @spring_io #springio17 • – – • – – – –
  24. 24. @spring_io #springio17 • – – • –
  25. 25. @spring_io #springio17 Spring Hateoas Spring REST docs Spring Social
  26. 26. @spring_io #springio17 Cloud Spring Cloud Spring Cloud data flow Spring XD
  27. 27. @spring_io #springio17 • – • – –
  28. 28. @spring_io #springio17 • – • Spring Cloud Data Flow Spring Cloud Stream Spring Cloud Stream App Starters Spring Cloud Task Spring Cloud Task App Starters Spring Cloud for AWS Spring Cloud for Cloud Foundry Spring Cloud connectors Spring Cloud Cloud Foundry Service Broker Spring Cloud CLI Spring Cloud Contract Spring Cloud Starters Spring Cloud Config Spring Cloud Netflix Spring Cloud Zookeeper Spring Cloud Bus Spring Cloud Cluster Spring Cloud Consul Spring Cloud Security Spring Cloud Sleuth <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> microservices data PaaS
  29. 29. @spring_io #springio17 API Gateway LOG Analytics Monitor AUTH service CONFIG service Service Discovery Client ZUUL EUREKA Spring Cloud Config Spring Cloud Security Spring Cloud Netflix Spring Cloud Netflix HYSTERIX Spring Cloud Zookeeper Spring Cloud Starters Spring Cloud Config Spring Cloud Netflix Spring Cloud Zookeeper Spring Cloud Bus Spring Cloud Cluster Spring Cloud Consul Spring Cloud Security Spring Cloud Sleuth
  30. 30. @spring_io #springio17 Spring Cloud Zookeeper Spring Cloud Netflix Spring Cloud Consul Service Discovery Support for Ribbon & Zuul Distributed Configuration Eureka: service discovery Zuul: intelligent routing (service discovery) Ribbon (client side load balancing) Hystrix: circuit breaker Service Discovery Distributed configuration
  31. 31. @spring_io #springio17 • – – • CONFIG service Spring Cloud Config
  32. 32. @spring_io #springio17 • – • – – –
  33. 33. @spring_io #springio17 • – • • – –
  34. 34. @spring_io #springio17 Spring Cloud Data Flow Spring Cloud Stream Spring Cloud Stream App Starters Spring Cloud for AWS Spring Cloud for Cloud Foundry Spring Cloud connectors Spring Cloud Cloud Foundry Service Broker Spring Cloud CLI Spring Cloud Contract Spring Cloud Task Spring Cloud Task App Starters Spring Cloud Starters Spring Cloud Config Spring Cloud Netflix Spring Cloud Zookeeper Spring Cloud Bus Spring Cloud Cluster Spring Cloud Consul Spring Cloud Security Spring Cloud Sleuth microservices data PaaS
  35. 35. @spring_io #springio17 Source Proces sing step Proces sing step monolith Source Processing step Processing step Processing step Integration Springboot app Springboot app Springboot app Springboot app Springboot app Proces sing step Destination Destination Spring Cloud Data Flow Spring Cloud Stream Spring Cloud Stream App Starters Spring Cloud Task Spring Cloud Task App Starters
  36. 36. @spring_io #springio17 • – • – – • – •
  37. 37. @spring_io #springio17 • – • – – – –
  38. 38. @spring_io #springio17 • – – – – – –
  39. 39. @spring_io #springio17 • – – – • – –
  40. 40. @spring_io #springio17 Spring Cloud Data Flow Spring Cloud Stream Spring Cloud Stream App Starters Spring Cloud for AWS Spring Cloud for Cloud Foundry Spring Cloud connectors Spring Cloud Cloud Foundry Service Broker Spring Cloud CLI Spring Cloud Contract Spring Cloud Task Spring Cloud Task App Starters Spring Cloud Starters Spring Cloud Config Spring Cloud Netflix Spring Cloud Zookeeper Spring Cloud Bus Spring Cloud Cluster Spring Cloud Consul Spring Cloud Security Spring Cloud Sleuth microservices data PaaS
  41. 41. @spring_io #springio17 • – – • • • • •
  42. 42. @spring_io #springio17 • – –
  43. 43. @spring_io #springio17 • – • – – •
  44. 44. @spring_io #springio17 • – –
  45. 45. @spring_io #springio17 Spring Cloud Data Flow Spring Cloud Stream Spring Cloud Stream App Starters Spring Cloud for AWS Spring Cloud for Cloud Foundry Spring Cloud connectors Spring Cloud Cloud Foundry Service Broker Spring Cloud CLI Spring Cloud Contract Spring Cloud Task Spring Cloud Task App Starters Spring Cloud Starters Spring Cloud Config Spring Cloud Netflix Spring Cloud Zookeeper Spring Cloud Bus Spring Cloud Cluster Spring Cloud Consul Spring Cloud Security Spring Cloud Sleuth microservices data PaaS
  46. 46. @spring_io #springio17 • – • • • – –
  47. 47. @spring_io #springio17 • – • – –
  48. 48. @spring_io #springio17 Spring Shell Spring Flo Spring for Android Spring StatemachineSpring Mobile Spring XD Spring Kafka Spring AMQP
  49. 49. @spring_io #springio17 Spring Kafka Spring AMQP • • – –
  50. 50. @spring_io #springio17 Spring for Android Spring Mobile
  51. 51. @spring_io #springio17 Spring Shell Spring Flo
  52. 52. @spring_io #springio17 Spring Statemachine • – •
  53. 53. @spring_io #springio17

×