Upload
jeroen-sterken
View
365
Download
0
Embed Size (px)
Citation preview
@spring_io
#springio17
•
Related projects
Spring LDAPSpring Security OAuthSpring Security GrailsSpring Security SAMLSpring Security Kerberos
Modules (#20)
spring-aopspring-aspectsspring-beansspring-contextspring-context-supportspring-corespring-expressionspring-instrumentspring-instrument-tomcatspring-jdbc
spring-jmsspring-messagingspring-ormspring-oxmspring-testspring-txspring-webspring-webmvcspring-webmvc-portletspring-websocket
Umbrella project
Spring Cloud Config Spring Cloud ZookeeperSpring Cloud NetflixSpring Cloud BusSpring Cloud for CFSpring CF Service BrokerSpring Cloud for AWSSpring Cloud ClusterSpring Cloud ConsulSpring Cloud Security
Spring Cloud SleuthSpring Cloud Data FlowSpring Cloud Stream Spring Cloud Stream App StartersSpring Cloud TaskSpring Cloud Task App StartersSpring Cloud connectorsSpring Cloud StartersSpring Cloud CLISpring Cloud Contract
@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
@spring_io
#springio17
Spring security
IO platformSpring Integration
Spring web services
Spring LDAP
Spring web flow
Spring batch
@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
@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();
}
}
@spring_io
#springio17
Spring Cloud
Spring DataSpring Boot
Spring REST docs Spring Cloud Data Flow
Spring Social
Spring Hateoas
Spring Session
@spring_io
#springio17
Spring Boot
Spring Data
Data
web
Spring REST docs
Spring Hateoas
Spring Session
IntegrationSpring Social
Cloud
Spring Cloud
@spring_io
#springio17
•
–
•
Spring Data RedisSpring Data for Apache CassandraSpring Data for Apache SolrSpring Data Couchbase (community module)Spring Data Elasticsearch (community module)Spring Data Neo4j (community module)
Spring Data CommonsSpring Data JPASpring Data KeyValueSpring Data LDAPSpring Data MongoDBSpring Data GemfireSpring Data REST
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-releasetrain</artifactId>
<version>Kay-M3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@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();
}
@spring_io
#springio17
•
–
–
•
Spring dataRepositories/aggregates
Spring HATEOAShypermedia+ Spring data REST=
“DDD & REST - Domain Driven APIs for the web” - Oliver Gierke
@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);
}
@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
}
}
@spring_io
#springio17
•
–
•Spring Cloud Data FlowSpring Cloud StreamSpring Cloud Stream App StartersSpring Cloud TaskSpring Cloud Task App StartersSpring Cloud for AWSSpring Cloud for Cloud FoundrySpring Cloud connectorsSpring Cloud Cloud Foundry Service BrokerSpring Cloud CLISpring Cloud Contract
Spring Cloud Starters Spring Cloud ConfigSpring Cloud NetflixSpring Cloud ZookeeperSpring Cloud BusSpring Cloud ClusterSpring Cloud ConsulSpring Cloud SecuritySpring 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
@spring_io
#springio17
APIGateway
LOGAnalytics
MonitorAUTH
serviceCONFIGservice
ServiceDiscovery
Client
ZUUL EUREKA
Spring Cloud Config
Spring Cloud Security
Spring Cloud Netflix
Spring Cloud Netflix
HYSTERIX
Spring Cloud Zookeeper
Spring Cloud Starters Spring Cloud ConfigSpring Cloud NetflixSpring Cloud ZookeeperSpring Cloud BusSpring Cloud ClusterSpring Cloud ConsulSpring Cloud SecuritySpring Cloud Sleuth
@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
@spring_io
#springio17
Spring Cloud Data FlowSpring Cloud StreamSpring Cloud Stream App StartersSpring Cloud for AWSSpring Cloud for Cloud FoundrySpring Cloud connectorsSpring Cloud Cloud Foundry Service BrokerSpring Cloud CLISpring Cloud ContractSpring Cloud TaskSpring Cloud Task App Starters
Spring Cloud Starters Spring Cloud ConfigSpring Cloud NetflixSpring Cloud ZookeeperSpring Cloud BusSpring Cloud ClusterSpring Cloud ConsulSpring Cloud SecuritySpring Cloud Sleuth
microservices
data
PaaS
@spring_io
#springio17
Source
Processingstep
Processingstep
monolith
SourceProcessing
stepProcessing
stepProcessing
step
Integration
Springbootapp
Springbootapp
Springbootapp
Springbootapp
Springbootapp
Processingstep
Destination
Destination
Spring Cloud Data FlowSpring Cloud StreamSpring Cloud Stream App StartersSpring Cloud TaskSpring Cloud Task App Starters
@spring_io
#springio17
Spring Cloud Data FlowSpring Cloud StreamSpring Cloud Stream App StartersSpring Cloud for AWSSpring Cloud for Cloud FoundrySpring Cloud connectorsSpring Cloud Cloud Foundry Service BrokerSpring Cloud CLISpring Cloud ContractSpring Cloud TaskSpring Cloud Task App Starters
Spring Cloud Starters Spring Cloud ConfigSpring Cloud NetflixSpring Cloud ZookeeperSpring Cloud BusSpring Cloud ClusterSpring Cloud ConsulSpring Cloud SecuritySpring Cloud Sleuth
microservices
data
PaaS
@spring_io
#springio17
Spring Cloud Data FlowSpring Cloud StreamSpring Cloud Stream App StartersSpring Cloud for AWSSpring Cloud for Cloud FoundrySpring Cloud connectorsSpring Cloud Cloud Foundry Service BrokerSpring Cloud CLISpring Cloud ContractSpring Cloud TaskSpring Cloud Task App Starters
Spring Cloud Starters Spring Cloud ConfigSpring Cloud NetflixSpring Cloud ZookeeperSpring Cloud BusSpring Cloud ClusterSpring Cloud ConsulSpring Cloud SecuritySpring Cloud Sleuth
microservices
data
PaaS
@spring_io
#springio17
Spring Shell
Spring Flo
Spring for Android
Spring StatemachineSpring Mobile
Spring XD
Spring Kafka
Spring AMQP