buy clomid online

Archive for March, 2012

Le scheduling avec Spring et Quartz

March 15th, 2012 | Category: java,programmation,spring

Une des solutions Java pour faire du scheduling est l’utilisation d’un des frameworks disponible sur le marché. La solution que j’ai testé pour vous est celle utilisant Spring et Quartz.

Pour commencer les dépendances Maven : 😀

  1. <properties>
  2.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  3.         <spring.version>3.0.1.RELEASE</spring.version>
  4.     </properties>
  5.  
  6.     <dependencies>
  7.         <dependency>
  8.             <groupId>org.springframework</groupId>
  9.             <artifactId>spring-core</artifactId>
  10.             <version>${spring.version}</version>
  11.         </dependency>
  12.         <dependency>
  13.             <groupId>org.springframework</groupId>
  14.             <artifactId>spring-context</artifactId>
  15.             <version>${spring.version}</version>
  16.         </dependency>
  17.         <dependency>
  18.             <groupId>org.springframework</groupId>
  19.             <artifactId>spring-context-support</artifactId>
  20.             <version>${spring.version}</version>
  21.         </dependency>
  22.         <dependency>
  23.             <groupId>org.springframework</groupId>
  24.             <artifactId>spring-tx</artifactId>
  25.             <version>${spring.version}</version>
  26.         </dependency>
  27.         <dependency>
  28.             <groupId>org.quartz-scheduler</groupId>
  29.             <artifactId>quartz</artifactId>
  30.             <version>1.8.5</version>
  31.         </dependency>
  32.         <dependency>
  33.             <groupId>junit</groupId>
  34.             <artifactId>junit</artifactId>
  35.             <version>3.8.1</version>
  36.             <scope>test</scope>
  37.         </dependency>
  38.     </dependencies>

Par la suite, nous allons définir l’objet qui sera utilisé par notre Scheduler.

  1. package com.nihed.cronapplication.task;
  2.  
  3. import java.util.Date;
  4.  
  5. public class Task1 {
  6.  
  7.     public void runTask() {
  8.         System.out.println("Task1 "+new Date());
  9.     }
  10. }

Puis, nous allons écrire le fichier de configuration de Spring ou nous avons configurer l’exécution de la méthode runTask toutes les 5 secondes. Pour cela, nous avons utilisé une écriture qui ressemble Cron “0/5 * * * * ?”

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.  
  5.        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  6. ">
  7.    
  8.     <!– Trigger 1 –>
  9.     <bean id="task1" class="com.nihed.cronapplication.task.Task1" />
  10.    
  11.     <bean id="jobTask1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
  12.         <property name="targetObject" ref="task1" />
  13.         <property name="targetMethod" value="runTask"/>
  14.         <property name="concurrent" value="false" />
  15.     </bean>
  16.     <!– lancement tous les 5 secondes –>
  17.     <bean id="cronTrigger1" class="org.springframework.scheduling.quartz.CronTriggerBean">
  18.         <property name="jobDetail" ref="jobTask1" />
  19.         <property name="cronExpression" value="0/5 * * * * ?" />
  20.     </bean>
  21.    
  22.     <!– Scheduler Configuration –>
  23.     <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  24.         <property name="triggers" >
  25.             <list>
  26.                 <ref bean="cronTrigger1"/>
  27.             </list>
  28.         </property>
  29.     </bean>
  30.  
  31.    
  32. </beans>

Enfin, un petit main pour tester notre application.

  1. package com.nihed.cronapplication;
  2.  
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;
  4.  
  5. public class App
  6. {
  7.     public static void main( String[] args )
  8.     {
  9.         new ClassPathXmlApplicationContext("SpringXMLConfig.xml");
  10.  
  11.     }
  12. }

No comments

Spring Data – MongoDB Sample

March 08th, 2012 | Category: database,geek,OpenSource,programmation

MongoDB est un SGBDOD (système de gestion de base de données orientée documents). C’est une solution NoSQL utilisé par plusieurs sociétés telque MTV, NY-Times ou SourceForge.

L’exemple que je vais présenter est une application Maven utilisant le framework Spring Data MongoDB afin de communiquer avec le SGBDOD et de faire les requêtes de bases à savoir l’insertion, la suppression, et la recherche.

La première étape est d’ajouter les dépendances maven :

  1. <repositories>
  2.         <repository>
  3.             <id>spring-milestone</id>
  4.             <name>Spring Maven MILESTONE Repository</name>
  5.             <url>http://maven.springframework.org/milestone</url>
  6.         </repository>
  7.     </repositories>
  8.     <dependencies>
  9.         <dependency>
  10.             <groupId>junit</groupId>
  11.             <artifactId>junit</artifactId>
  12.             <version>4.8.2</version>
  13.             <scope>test</scope>
  14.         </dependency>
  15.         <dependency>
  16.             <groupId>org.springframework</groupId>
  17.             <artifactId>spring-core</artifactId>
  18.             <version>3.1.1.RELEASE</version>
  19.         </dependency>
  20.         <dependency>
  21.             <groupId>org.springframework</groupId>
  22.             <artifactId>spring-context</artifactId>
  23.             <version>3.1.1.RELEASE</version>
  24.         </dependency>
  25.         <dependency>
  26.             <groupId>org.mongodb</groupId>
  27.             <artifactId>mongo-java-driver</artifactId>
  28.             <version>2.7.3</version>
  29.         </dependency>
  30.         <dependency>
  31.             <groupId>org.springframework.data</groupId>
  32.             <artifactId>spring-data-mongodb</artifactId>
  33.             <version>1.0.1.RELEASE</version>
  34.         </dependency>
  35.         <dependency>
  36.             <groupId>cglib</groupId>
  37.             <artifactId>cglib</artifactId>
  38.             <version>2.2.2</version>
  39.         </dependency>
  40.     </dependencies>

Pour commencer, nous allons créer une classe qui représente l’objet qu’on devra stocker. Dans notre cas d’étude, ce sera la classe Personne avec les attributs id, nom et prenom.

  1. package com.nihed.mongodbdemo;
  2.  
  3. public class Personne {
  4.    
  5.     private int id;
  6.     private String nom;
  7.     private String prenom;
  8.  
  9.  
  10.     public Personne(int id, String nom, String prenom) {
  11.         this.id = id;
  12.         this.nom = nom;
  13.         this.prenom = prenom;
  14.     }
  15.     //Getter and Setter
  16.    
  17.    
  18. }

Par la suite, nous allons configurer la connexion à notre base de donnée MongoDB, nous supposons que c’est une instance de base en local sur le port de base à savoir 27017.

  1. package com.nihed.mongodbdemo;
  2.  
  3. import org.springframework.context.annotation.Configuration;
  4. import com.mongodb.Mongo;
  5. import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
  6.  
  7.  
  8. @Configuration
  9. public class SpringMongoConfig extends AbstractMongoConfiguration {
  10.  
  11.     @Override
  12.     public String getDatabaseName() {
  13.         return "LocalDatabase";
  14.     }
  15.  
  16.     @Override
  17.     public Mongo mongo() throws Exception {
  18.         return new Mongo("localhost");
  19.     }
  20.    
  21. }

Enfin, voila le main avec nos exemples d’insertion suppression et recherche.

  1. package com.nihed.mongodbdemo;
  2.  
  3. import java.util.List;
  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.annotation.AnnotationConfigApplicationContext;
  6. import org.springframework.data.mongodb.core.MongoOperations;
  7. import org.springframework.data.mongodb.core.query.Criteria;
  8. import org.springframework.data.mongodb.core.query.Query;
  9.  
  10. /**
  11.  * Spring Data MongoDB Sample
  12.  *
  13.  */
  14. public class App {
  15.  
  16.     public static void main(String[] args) {
  17.         ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
  18.  
  19.         MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate");
  20.  
  21.         //Insert
  22.         {
  23.             Personne personne1 = new Personne(1, "nom1", "prenom1");
  24.             Personne personne2 = new Personne(2, "nom2", "prenom2");
  25.             mongoOperation.save(personne1);
  26.             mongoOperation.save(personne2);
  27.         }
  28.         //Select *
  29.         {
  30.             System.out.println("* select * :");
  31.             List<Personne> personnes = mongoOperation.findAll(Personne.class);
  32.             for (Personne personne : personnes) {
  33.                 System.out.println(personne.getId() + " " + personne.getNom() + " " + personne.getPrenom());
  34.             }
  35.         }
  36.  
  37.         //select where nom like %1
  38.         {
  39.             System.out.println("* select where nom=nom1 :");
  40.             List<Personne> personnes = mongoOperation.find(new Query(Criteria.where("nom").regex(".*1")), Personne.class);
  41.             for (Personne personne : personnes) {
  42.                 System.out.println(personne.getId() + " " + personne.getNom() + " " + personne.getPrenom());
  43.             }
  44.         }
  45.  
  46.         //delete where nom like %1
  47.         {
  48.             System.out.println("* delete where nom=nom1");
  49.             mongoOperation.remove(new Query(Criteria.where("nom").regex(".*1")), Personne.class);
  50.         }
  51.  
  52.         //Select *
  53.         {
  54.             System.out.println("* select * :");
  55.             List<Personne> personnes = mongoOperation.findAll(Personne.class);
  56.             for (Personne personne : personnes) {
  57.                 System.out.println(personne.getId() + " " + personne.getNom() + " " + personne.getPrenom());
  58.             }
  59.         }
  60.  
  61.     }
  62. }
1 comment