Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Это моя первая статья.Прошу сильно молотком не бить.Именно так проливается кровь
Приступим к созданию конфигурации. Я приведу сразу готовый конфигурационный класс и ниже опишу все необходимые детали.
<?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:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<!-- Scans within the base package of the application for @Components to configure as beans -->
<context:component-scan base-package="com.springapp" />
<!-- Configures support for @Controllers -->
<mvc:annotation-driven conversion-service="conversionService"/>
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean"/>
<!-- Resolves view names to protected .jsp resources within the /WEB-INF/views directory -->
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
How do I load configuration properties?
Use Names.bindProperties() to create bindings for each of the properties in a configuration file.
Names.bindProperties кушает property-файлы и Map<String,String>?конфигурация, в моем понимании, в простейшем случае, это *.properties файлы в которых лежат конфигурационные параметры приложение. XML файлы с описанием зависимостей между Spring бинами, в моем понимании, не являются конфигурацией приложения, это такой же код, только в виде XML.
А ничего, что Names.bindProperties кушает property-файлы и Map<String,String>?
Как-бы предназначено это исключительно для настроек: пути к файлам, имена серверов, порты и т.п. Структура приложения, имена классов, что куда биндится, какие бины на какие ссылаются, иерархия модулей и прочее задается в Java-коде.
<context:component-scan base-package="com.springapp" />
<!-- Configures support for @Controllers -->
<mvc:annotation-driven conversion-service="conversionService"/>
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
Так какая разница между именем пакета (что по своей сути есть относительный путь к файлам) и путем "/WEB-INF/views"?
Эти файлы лежат в скомпилированном war-файле, у них жестко заданный путь и расширение — после деплоя не может (не должна!) возникнуть необходимость менять эти параметры.
Как-бы предназначено это исключительно для настроек: пути к файлам, имена серверов, порты и т.п.
У вас между прочим properties файлы с… тоже лежат в нем. И тоже не изменяемый.Простите, но опять фантазии. Эти файлы могут лежать где угодно, и это определяется уже процедурой деплоя.
Как-то я считаю что настройки стоит класть в файл, а не в код.Да, полностью поддерживаю!
И описание какой будет использован view это именно настройка.А вот тут наши мнения расходятся. Я придерживаюсь вышеназванного мнения (приводил цитату).
$paramname). Вариантов же много.
Введение в Spring Frameworks: Spring MVC