> For the complete documentation index, see [llms.txt](https://bernardo.gitbook.io/development-docs-java/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bernardo.gitbook.io/development-docs-java/spring-data/components-and-configuration/datasource.md).

# Datasource

## DB Access From Properties

```markup
<!-- Data source -->
<bean id="dataSource" class="${jdbc.dataSource.class}">
   <property name="driverClassName" value="${jdbc.driver}" />
   <property name="jdbcUrl" value="${jdbc.url}" />
   <property name="username" value="${jdbc.username}" />
   <property name="password" value="${jdbc.password}" />
</bean>
```

## DB Access From Environment

In this case the DB URI is taken from the DATABASE\_URL environmental variable.

```markup
<!-- DB Access URI -->
<bean class="java.net.URI" id="dbUrl">
   <constructor-arg value="#{systemEnvironment['DATABASE_URL']}" />
</bean>

<!-- Data source -->
<bean id="dataSource" class="${jdbc.datasource.class}">
   <property name="driverClassName" value="${jdbc.driver}" />
   <property name="jdbcUrl"
      value="#{ 'jdbc:postgresql://' + @dbUrl.getHost() + ':' + @dbUrl.getPort() + @dbUrl.getPath() }" />
   <property name="username" value="#{ @dbUrl.getUserInfo().split(':')[0] }" />
   <property name="password" value="#{ @dbUrl.getUserInfo().split(':')[1] }" />
</bean>
```

## Common

```
# Bean classes
jpa.entityManagerFactory.class=org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean
```
