Konfiguracja aplikacji Spring MVC

Odpowiedz Nowy wątek
2015-02-17 15:00
0

Witajcie,
Czy istnieje możliwość podłączenia zewnętrznej konfiguracji do aplikacji webowej napisanej w springu? Jeżeli to jak? Za pomocą mavena? Trzeba stworzyć bean w ustawieniach servleta?

Pozostało 580 znaków

2015-02-17 15:39
0

Możesz trochę jaśniej napisać co chcesz zrobić?

Pozostało 580 znaków

2015-02-17 16:04
0

Chciałbym mieć możliwość do konfigurowania aplikacji z poziomu pliku np. XML, tak żebym nie musiał ingerować w kod chcąc zmienić nagłówek strony, tylko żeby ten został pobrany z pliku

Pozostało 580 znaków

2015-02-17 16:10
1

Może chodzi Ci o propertiesy?

Pozostało 580 znaków

2015-02-17 21:52
0

Tak, dokładnie o to mi chodziło. Dzięki za pomoc :D

Pozostało 580 znaków

2015-02-17 22:30
0

Mam jeszcze pewien problem jednak chyba z tym :P
Mam takie coś w Controllerze

@Autowired
@Value("${page_title}")
private String pageTitle;

Takie coś w xmlu servleta

<context:property-placeholder location="classpath:config.properties"/>

I taką treść pliku konfiguracyjnego

page_title=Strona przykladowa

Chciałbym przenieść te wszystkie zmienne z ustawieniami z Controllera do zewnętrznej klasy (np. Settings). Jak tego dokonać?

Pozostało 580 znaków

2015-02-18 09:48
0

Jeśli chcesz wstrzyknąć bean'a do pola klasy/ metody to używasz @Autowired.

Jeśl chcesz wstrzyknąć wartość z propertiesa do pola klasy to używasz tylko @Value, czyli:

@Value("${page_title}")
private String pageTitle;

Przykład użycia adnotacji @Value
http://www.javabeat.net/sprin[...]erties-file-value-annotation/

Przykład użycia adnotacji @Autowired
http://www.mkyong.com/spring/[...]ns-with-autowired-annotation/

Przykład aplikacji wykorzystujących properties'y oraz adnotację @Autowired:
https://github.com/DanielMichalski/spring-web-blogs

edytowany 3x, ostatnio: bakeraw2, 2015-02-18 10:00

Pozostało 580 znaków

2015-02-18 10:58
Swr
0

Jeśli dobrze zrozumiałem: stwórz klasę Settings i wstrzyknij do niej twoje wartości, a samo Settings wstrzyknij do kontrolera.

Pozostało 580 znaków

2015-02-18 11:07
0

Albo bezpośrednio wstrzykuj wartości propertiesa do kontrolera jeśli jest ich kilka:

@Controller
@RequestMapping("/example")
public class ExampleController {

     @Value("${example_var1}")
     private String exampleVar1;

     @Value("${example_var1}")
     private String exampleVar1;

     @Value("${example_var1}")
     private String exampleVar1;
}
edytowany 1x, ostatnio: bakeraw2, 2015-02-18 14:01

Pozostało 580 znaków

2015-02-18 15:30
0

Działa :D
Zrobiłem tak:

Controller:

    private Settings settings;

    @Autowired
    @Qualifier(value="settings")
    public void setSettings(Settings settings) {
        this.settings = settings;
    }

XML servleta:

<beans:bean id="settings" class="cms.model.Settings"/>

Settings:

package cms.model;

import org.springframework.beans.factory.annotation.Value;

import java.io.Serializable;

public class Settings {

    @Value("${header_title}")
    private String headerTitle;

    @Value("${header_subtitle}")
    private String headerSubtitle;

    @Value("${page_title}")
    private String pageTitle;

    public String getHeaderTitle() {
        return headerTitle;
    }

    public void setHeaderTitle(String headerTitle) {
        this.headerTitle = headerTitle;
    }

    public String getHeaderSubtitle() {
        return headerSubtitle;
    }

    public void setHeaderSubtitle(String headerSubtitle) {
        this.headerSubtitle = headerSubtitle;
    }

    public String getPageTitle() {
        return pageTitle;
    }

    public void setPageTitle(String pageTitle) {
        this.pageTitle = pageTitle;
    }

}

Cały spring jest strasznie prosty, a ja już od 2 lat pisząc w Javie SE chyba mam za duże skłonności do kombinowania :)
Dzięki wielkie za pomoc :D

Pozostało 580 znaków

2015-02-18 15:37
0
Zaprogramowany napisał(a):

Cały spring jest strasznie prosty, a ja już od 2 lat pisząc w Javie SE chyba mam za duże skłonności do kombinowania :)
Dzięki wielkie za pomoc :D

Znając tylko DI w Spring nie możesz powiedzieć, że jest prosty, czy trudny.
Poznaj jeszcze AOP, WebFlow, Security, Integration etc to przekoszasz się czy jest taki prosty :) Przyjemnie się w nim pisze, ale jest mocno rozbudowany.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0