Springframework verwenden?

K

karlks

Gast
Ich habe vor testweise mal ein wenig mit Spring rumzuspielen, daher habe ich Spring per Eclipse installiert (über Install new Software). Wenn ich jetzt allerdings in einem Projekt auf die Klassen des Springframeworks zugreifen möchte z. B. die Klasse ClassPathResource erkennt er sie nicht. Welche *.jar Dateien muss ich denn in den Projekt properties unter Java Build Path hinzufügen?
 

kay73

Bekanntes Mitglied
Ich weiss nicht was Du vorhast und kann mir nicht genau vorstellen, wie Du "Spring per Eclipse" installiert hast. Wahrscheinlich hast Du nur die Plugins der Spring Toolsuite erwischt. Du brauchst natürlich die JARs. Ein Hinweis: Spring ist fett, besteht seit dem 3er Release aus vielen einzelnen JARs und birgt eine Menge an Abhängigeiten.

Es ist IMHO tödlich, das von Hand zu konfigurieren und Du läufst dabei Gefahr, Dich andauernd zu ärgern, dass da immer noch die ein oder andere Klasse fehlt. Ich würde daher auf keinen Fall "zu Fuß" ein Spring Projekt von Hand konfigurieren, sondern das lieber Maven überlassen und Eclipse Projekte zum Importieren in den Workspace ebenfalls von Maven generieren lassen.

Das geht so:
  • Installier Maven.
  • Lasse Maven irgendwo ein neues Projekt generieren:
    Code:
    mvn archetype:create   -DarchetypeGroupId=org.apache.maven.archetypes   -DgroupId=com.mycompany.app   -DartifactId=my-spring-app
  • Der Ordner
    Code:
    my-spring-app
    ist ab jetzt Arbeitsverzeichnis! Erzeuge von Hand darunter den folgenden Ordner:
    Code:
    src/main/resources
  • Öffne die pom.xml und füge Folgendes zu den <dependencies>
    [XML]<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.0.2.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>3.0.2.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>3.0.2.RELEASE</version>
    </dependency>[/XML]
  • Lasse maven alle Abhängigkeiten automatisch ziehen:
    Code:
    mvn clean install
    Das dauert jetzt, weil maven alles Nötige runterlädt.
  • Lasse Eclipse Projekte erzeugen:
    Code:
    mvn eclipse:eclipse
  • Importiere das Projekt in Eclipse: "File/Import.../Existing projects into workspace". Root folder ist der Ordner oberhalb von my-spring-app. Sicherstellen, dass "my-spring-app" angezeigt und angehakt ist.
  • Erstelle eine
    Code:
    my-spring-config.xml
    in [c]src/main/resources[/code]
    [XML]<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    Index of /schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:annotation-config/>
    <bean class="com.mycompany.app.MyBean" />
    <bean class="com.mycompany.app.MyInjectedBean" />
    </beans>[/XML]
    Achte darauf, dass
    Code:
    src/main/resources
    bei den Sourcefoldern ist, falls nicht, füge diesen Ordner über "Kontextmenu/Build Path/Use as Source folder" hinzu!
  • Erstelle [c]com.mycompany.app.MyBean.java[/code] und fixe die Importe:
    Java:
    package com.mycompany.app;
    
    import org.springframework.beans.factory.annotation.Autowired;
    
    public class MyBean {
    	@Autowired(required=true)
    	private MyInjectedBean  myInjectedBean;
    
    	protected MyInjectedBean getMyInjectedBean() {
    		return myInjectedBean;
    	}
    
    	protected void setMyInjectedBean(MyInjectedBean myInjectedBean) {
    		this.myInjectedBean = myInjectedBean;
    	}
    }
  • Erstelle [c]com.mycompany.app.MyInjectedBean.java[/code] und fixe die Importe:
    Java:
    package com.mycompany.app;
    
    public class MyInjectedBean {
    	public void sayHello() {
    		System.out.println("Hello World");
    	}
    }
  • Die [c]com.mycompany.app.App.java[/code] erweitern und fixe die Importe:
    Java:
    public class App 
    {
        public static void main( String[] args )
        {
        	ApplicationContext ctx = new ClassPathXmlApplicationContext("my-spring-config.xml");
        	
        	MyBean myBean = (MyBean)ctx.getBean(MyBean.class);
        	myBean.getMyInjectedBean().sayHello();
        }
    }
  • Die Anwendung sollte jetzt kompilieren und ausführen lassen und zuletzt ein "Hello World " erscheinen.

Wenn Du später mit anderen Spring Kompnenten herumspielen willst, geh auf Maven Repository: Search/Browse/Explore, suche dort nach den entsprechenden Sachen, z. B. "spring jdbc" und klicke dazu den zum Release passenden link. Dort bekommst Du eine Kopierschablone für die
Code:
<dependency>
in der pom.xml und eine Liste der Abhängigkeiten.
 
Zuletzt bearbeitet:

Neue Themen


Oben