BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Spring Cloud 1.0 - Plateforme d’Abstraction Cloud

Spring Cloud 1.0 - Plateforme d’Abstraction Cloud

Pivotal a récemment publié Spring Cloud 1.0, une bibliothèque open source qui fournit un moyen simple pour développer des applications JVM pour le cloud. Les applications peuvent se connecter à divers services de cloud computing et découvrir des informations sur l'environnement cloud lors de l'exécution. Spring Cloud peut être utilisé à la fois avec des applications basées Spring ou autres. Spring cloud 1.0 supporte Cloud Foundry et Heroku et peut être étendu pour supporter d'autres plate-formes de cloud.

Spring Cloud introduit les concepts de connecteur cloud et de connecteur de service. Un Connecteur Cloud est une interface qu’un fournisseur de cloud implémente pour permettre au reste de la bibliothèque de travailler avec une plate-forme cloud. Spring Cloud 1.0 est livré avec Cloud Foundry, Cloud Connector et Heroku Cloud Connector. Un connecteur de service est un objet qui représente une connexion à un service. Spring Cloud 1.0 est livré avec un connecteur de service pour les projets javax.sql.DataSource et Spring Data. Des connecteurs cloud ainsi que des connecteurs de service sur mesure peuvent être écrits pour supporter d'autres plate-formes et services cloud, paquetés sous forme de fichiers JAR et simplement ajoutés au classpath.

Pour utiliser Spring Cloud avec une application Spring, vous aurez besoin d'ajouter la dépendance spring-cloud-spring-service-connector. Voici un extrait de la dépendance Maven.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-spring-service-connector</artifactId>
    <version>1.0.0.RELEASE</version>
</dependency>

Pour utiliser Spring Cloud avec une application non-Spring, vous aurez besoin d'ajouter plutôt la dépendance spring-cloud-core.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-core</artifactId>
    <version>1.0.0.RELEASE</version>
</dependency>

Si vous souhaitez avoir la possibilité de déployer à la fois sur Cloud Foundry et Heroku, ajoutez les dépendances suivantes.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-cloudfoundry-connector</artifactId>
    <version>1.0.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-heroku-connector</artifactId>
    <version>1.0.0.RELEASE</version>
</dependency>

Voici un exemple pour obtenir un service de DataSource et un ApplicationInstanceInfo. ApplicationInstanceInfo fournit les informations sur l'instance et il est spécifique à la plate-forme cloud.

// MyController.java
@Controller
public class MyController {
    @Autowired(required = false) DataSource dataSource;

    @Autowired ApplicationInstanceInfo instanceInfo;

    ...
}
// CloudConfig.java
@Configuration
@ServiceScan
@Profile("cloud")
public class CloudConfig extends AbstractCloudConfig {
    @Bean
    public ApplicationInstanceInfo applicationInfo() {
        return cloud().getApplicationInstanceInfo();
    }
}

L’annotation @Profile("cloud") est utilisée puisque nous voulons que cette configuration soit chargée dans un environnement de cloud computing. L'annotation @ServiceScan permet de scanner tous les services et crée un bean pour l’auto-connexion. @ServiceScan est similaire à @ComponentScan, mais au lieu de chercher des composants et des beans, il cherche les services connexes.

Pour une procédure rapide sur la manière de déploiement sur Cloud Foundry ou Heroku, lisez cet article de blog "Introduire Spring cloud". Il utilise un exemple d'application Spring Boot. Pour les applications non-spring, elles devraient passer par les notes d'utilisation README Spring cloud Core.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT