2016-04-12 3 views
0

Я работаю над сеткой библиотеки, использующей Hibernate и Spring MVC для чтения данных из БД. Я хочу сохранить соединения DB в системной переменной. То, что я сделал это делаю файл с именем database.properties и писать код, который считывает из файла, который является»Хранение связей DB в переменной ресурса весной

<mvc:resources mapping="/resources/**" location="/WEB-INF/resources/**"></mvc:resources> 
 
\t <context:property-placeholder location="classpath:resources/database.properties"/> 
 
\t <context:component-scan base-package="com.dineshonjava"/> 
 

 
\t <tx:annotation-driven transaction-manager="hibernateTransactionManager"/> 
 
\t 
 
\t <bean 
 
\t \t class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
 
\t \t id="jspViewResolver"> 
 
\t \t <property name="prefix" value="/WEB-INF/views/"></property> 
 
\t \t <property name="suffix" value=".jsp"></property> 
 
\t </bean> 
 

 
\t <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" 
 
\t \t id="dataSource"> 
 
\t \t <property name="driverClassName" value="${database.driver}"></property> 
 
\t \t <property name="url" value="${database.url}"></property> 
 
\t \t <property name="username" value="${database.user}"></property> 
 
\t \t <property name="password" value="${database.password}"></property> 
 
\t </bean> 
 

 
\t <bean 
 
\t \t class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" 
 
\t \t id="sessionFactory"> 
 
\t \t <property name="dataSource" ref="dataSource"></property> 
 
\t \t <property name="annotatedClasses"> 
 
\t \t \t <list> 
 
\t \t \t \t <value>com.dineshonjava.model.Employee</value> 
 
\t \t \t \t <value>com.dineshonjava.model.Department</value> 
 
\t \t \t </list> 
 
\t \t </property> 
 
\t \t <property name="hibernateProperties"> 
 
\t \t \t <props> 
 
\t \t \t \t <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
 
\t \t \t \t <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> 
 
\t \t \t \t <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto} </prop> 
 
\t \t \t </props> 
 
\t \t </property> 
 
\t </bean> 
 

 
\t <bean class="org.springframework.orm.hibernate4.HibernateTransactionManager" 
 
\t \t id="hibernateTransactionManager"> 
 
\t \t <property name="sessionFactory" ref="sessionFactory"></property> 
 
\t </bean>

Как использовать системные переменные? Я читал в Интернете, но до сих пор не могу найти любая соответствующая

+0

Чего вы хотите достичь? Мне непонятно, что вы имеете в виду * хранить соединения БД в системную переменную * ... Для меня это даже не имеет смысла ... –

+0

Свойства, определенные в базе данных.properties не являются системными переменными – niilzon

+0

@niilzon, поэтому я хочу для хранения его в системных переменных –

ответ

0

неясно из вашего вопроса, что вы пытаетесь достичь, я предполагаю, что вы ищете что-то вроде этого:..

<!-- In bean definition--> 
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource"> 
    <property name="driverClassName" value="#{ systemProperties['database.driver'] }"></property> 
    <property name="url" value="#{systemProperties['database.url'] }"></property> 
    <property name="username" value="#{ systemProperties['database.username'] }"></property> 
    <property name="password" value= value="#{ systemProperties['database.password'] }"></property></bean> 

И вы можете объявить properties в boxes(Unix/Windows), где вы хотите развернуть приложение.

+0

Можете ли вы привести пример для этого? могут быть ссылки? –

+0

Вам это не нужно ... Просто используйте '$ {database.driver}' создайте свойство системы или свойство среды с этим именем, и оно будет использоваться. Не нужно прибегать к SpEL. –

+0

https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html – Helios