Konfiguracja aplikacji Spring MVC

Konfiguracja aplikacji Spring MVC
ZA
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:174
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?

bakeraw2
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 5 lat
  • Postów:400
0

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

ZA
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:174
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

bakeraw2
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 5 lat
  • Postów:400
1

Może chodzi Ci o propertiesy?

ZA
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:174
0

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

ZA
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:174
0

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

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

Takie coś w xmlu servleta

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

I taką treść pliku konfiguracyjnego

Kopiuj
page_title=Strona przykladowa

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

bakeraw2
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 5 lat
  • Postów:400
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:

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

Przykład użycia adnotacji @Value
http://www.javabeat.net/spring-load-properties-file-value-annotation/

Przykład użycia adnotacji @Autowired
http://www.mkyong.com/spring/spring-auto-wiring-beans-with-autowired-annotation/

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

edytowany 3x, ostatnio: bakeraw2
SW
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 4 lata
  • Postów:426
0

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

bakeraw2
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 5 lat
  • Postów:400
0

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

Kopiuj
@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
ZA
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:174
0

Działa :D
Zrobiłem tak:

Controller:

Kopiuj
    private Settings settings;

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

XML servleta:

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

Settings:

Kopiuj
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

bakeraw2
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 5 lat
  • Postów:400
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.

ZA
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:174
0

To miałem na myśli. Przyjemnie się w nim pisze, a z tego ze jest bardzo rozbudowany zdaję sobie sprawę

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.