/ / Obtention d'un objet DataSource à partir d'un contexte JNDI dans une application Java autonome? - java, source de données, jndi

Obtenir un objet DataSource à partir du contexte JNDI dans une application Java autonome? - java, source de données, jndi

J'ai téléchargé le fichier fscontext.jar depuis ici et le mettre dans mon chemin de classe.

C'est le code que j'ai:

import javax.naming.*;
import java.io.File;

public class JNDIHello {

final static String URL =
"file:///Users/Koray Tugay/Development/studentform/src/main/java/biz/tugay";
final static String CONTEXT_FACTORY
= "com.sun.jndi.fscontext.RefFSContextFactory";

static {
System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, CONTEXT_FACTORY);
System.setProperty(Context.PROVIDER_URL, URL);
}

public static void main(String[] args) throws Exception {
final InitialContext context = new InitialContext();
final File file = (File) context.lookup("TestClass.java");
System.out.println("File exists? " + file.exists());
}
}

La sortie sera:

File exists? true

qui est genial. J'utilise RefFSContextFactory avec JNDI pour obtenir Objets de fichier du contexte.

Ce que je veux faire, c'est pouvoir La source de données objets, comme dans les applications Web. Un exemple peut être vu ici.

J'ai déjà h2db en cours d'exécution dans mon local, et les propriétés sont les suivantes:

<?xml version="1.0" encoding="utf-8"?>
<Context>
<Resource name="jdbc/studentform" auth="Container" type="javax.sql.DataSource"
maxActive="5" maxIdle="10" maxWait="10000"
username="sa" password="" driverClassName="org.h2.Driver"
url="jdbc:h2:tcp://localhost:9092/~/h2dbs/studentform"/>
</Context>

Mais quelle implémentation jndi Factory dois-je utiliser et comment définir l'URL dans une application Java autonome?

Réponses:

0 pour la réponse № 1

Vous avez besoin d'un conteneur pour exécuter votre application et lui fournir des services tels que la gestion des sources de données, etc. Cadre de printemps est le premier qui me vient à l’esprit dans de tels cas. Il vous permet de créer un conteneur IoC qui gérera vos dépendances, y compris les sources de données. Cela a aussi Botte de printemps sous-projet qui permet de créer plus facilement des modules exécutables.