cout << text << i;
<<
оператор для ostream возвращает ссылку на ostream, таким образом, можно просто продолжать объединять в цепочку эти <<
операции. Таким образом, вышеупомянутое является в основном тем же как:
cout << text;
cout << i;
Используйте Spring, являясь явным подключением в XML, автоматическим подключением или какой-либо их комбинацией, чтобы определить «постоянную» конфигурацию, а затем перенести остальное в файлы свойств. Учетные данные базы данных являются типичным примером этого.
См. Spring and Ibatis Tutorial для базового примера этого. Краткая версия:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:database.properties"/>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${database.class}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
</bean>
с database.properties (в пути к классам):
database.username=scratch
database.password=scratch
database.class=oracle.jdbc.OracleDriver
database.url=jdbc:oracle:thin:@localhost:1521:XE
вы можете сохранить конфигурацию приложения в файле свойств и использовать PropertyPlaceholderConfigurer для загрузки этих свойств.
Итак, в вашем файле applicationContext у вас может быть следующее:
<bean id="dataSource" class="com.x.y.z.DataSource">
<property name="url" value="${dataSource.url}" />
</bean>
Свойство dataSource.url будет загружено из вашего файла свойств.
Это то, что я использую в приложении, над которым я работаю, и оно значительно упрощает настройку!
Вы по-прежнему можете использовать Spring для соединения ваших классов с IOC (в XML, конфигурации Java, автоматическом подключении и т. Д.), Но по-прежнему использовать файлы свойств для хранения значений, которые могут изменяться в зависимости от развертывания, например, соединений с базой данных. .
Посмотрите на PropertyPlaceholderConfigurer . Вот сообщение в блоге с примером того, как его использовать.
Не забывайте, что вы можете использовать XML-файлы Spring для создания своего приложения, но используйте файлы свойств для предоставления (скажем) URL-адресов баз данных и т. Д. В этих конфигурациях.
Это работает очень хорошо. когда у вас есть один набор файлов XML для сборки приложения, а затем вы предоставляете другой набор файлов свойств в зависимости от того, используете ли вы версию приложения для разработки, тестирования или производства.
Используйте org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
, описанный здесь:
Вы можете разбить файлы конфигурации Spring на модули. Таким образом, у вас может быть один XML-файл для подключения к базе данных, который затем включается (импортируется) в центральный файл конфигурации Spring. Если пользователь должен иметь возможность изменять данные, вы можете создать файлы XML из шаблона и (повторно) загрузить контекст приложения.