Файл свойств пружины - PullRequest
       8

Файл свойств пружины

0 голосов
/ 27 ноября 2009

Я использую это в конфигурации моего приложения, чтобы указать, где получать мои сообщения

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basenames" value="WEB-INF/properties/messages"/>
    <property name="defaultEncoding" value="UTF-8"/>
</bean>

Как мне объявить такой же bean-компонент, который может быть доступен для моих кодов классов Java

Ответы [ 3 ]

2 голосов
/ 27 ноября 2009

Вы можете использовать этот, вместо того, чтобы создавать свой собственный, через:

@Resource(name="messageSource")
private MessageSource messageSource;
0 голосов
/ 28 ноября 2009

Как сказал @Bozho после того, как вы объявите MessageSource Spring автоматически определит тип и вставит файл свойств, который он находит в «WEB-INF / properties / messages [.properties]», который вы только что установили в своем контексте, затем вы можете использовать его следующим образом messageSource.getMessage("name"[,...]), или вы можете пойти по старому пути, и ваш бин может реализовать MessageSourceAware, и тогда вам потребуется включить общедоступный установщик для messageSource - вам не нужно будет явно введите messageSource, в этом случае либо Spring распознает реализованный интерфейс и сделает за вас автоматически.

0 голосов
/ 28 ноября 2009

Ваша декларация bean-компонента messageSource верна, если ваши сообщения находятся в WEB-INF / properties / messages в виде пар ключ-значение.

Теперь предположим, что вы хотите внедрить messageSource в класс с именем ClassA, и у вас есть для него установщик (setMessageSource). Все, что вам нужно сделать, это заставить контейнер Spring управлять этим классом как одним из его bean-компонентов. Это означает, что вы объявляете класс как bean-компонент в вашем applicationContext.xml следующим образом:

<!-- I am not setting the scope of this object as I don't know what it should be. You should do that based on your needs -->
<bean id="classA" class="com.somepath.ClassA">
</bean>

Вот и все! Когда контейнер Spring инициализирует этот класс, он распознает, что у него есть поле с именем messageSource типа ReloadableResourceBundleMessageSource, и вставит messageSource в экземпляр вашего класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...