Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Wstęp

Każda wtyczka ma własny kontekst aplikacji (ApplicationContext), w którym rejestrowane są jej komponenty, kontrolery, importowane serwisy etc. Dzięki temu wtyczka może być pisana tak jak każda inna aplikacja wykorzystująca SpringFramework.

Kontekst może być konfigurowany na 2 sposoby:

  1. przez plik plugin-context.xml w katalogu /META-INF/spring/
  2. przez klasę z adnotacją @Configuration

Konfiguracja XML

Jeżeli wtyczka zawiera plik /META-INF/spring/plugin-context.xml, to na jego podstawie tworzony jest XmlOsgiPluginContext.

Jeżeli projekt buduje Maven, plik powinien znajdować się w src/main/resources/META-INF/spring/plugin-context.xml

 

Plik konfiguracji jest standardowym plikiem konfiguracji kontekstu aplikacji springframework i może wyglądać następująco:

plugin-context.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"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
	
	<!-- Włączenie skanowania wtyczki w poszukiwaniu @Component -->
	<context:component-scan base-package="com.suncode.plugin.tutorial" />
	
</beans>

Konfiguracja poprzez plik XML ma swoje plusy i minusy. W ostateczności wszystko zależy od gustu autora wtyczki.

Konfiguracja Java

Od SpringFramework 3 możliwa jest konfiguracja kontekstu aplikacji w całości używając klas Java oznaczonych adnotacją @Configuration.

Jeżeli mechanizm wtyczek nie znajdzie pliku /META-INF/spring/plugin-context.xml to stworzy domyślny kontekst aplikacji, który skanuje całą wtyczkę w poszukiwaniu klas @Component (a więc również @Configuration).

Klasa konfiguracyjna w takim przypadku nie jest w ogóle potrzebna, jednak zazwyczaj chcemy dodatkowe funkcjonalności jak dostęp do bazy danych, transakcyjność etc.

Przykładowa konfiguracja (rejestruje tylko 1 bean klasy String):

Java Configuration
package com.suncode.plugin.tutorial;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Config {
    @Bean
    public String someString() {
        return "asd";
    }
}

 

 

 

 

  • No labels