Можно ли использовать аннотацию @DataSourceDefinition в Spring Context? - PullRequest
2 голосов
/ 01 июня 2011

Могу ли я использовать новый @DataSourceDefinition вместо объявления Datasource в контексте Spring?

@DataSourceDefinition(name="java:global/MyApp/MyDataSource",
      className="com.foobar.MyDataSource",
      portNumber=6689,
      serverName="myserver.com",
      user="lance",
      password="secret"
   )

Использование URL:

@DataSourceDefinition(name="java:global/MyApp/MyDataSource",
    className="org.apache.derby.jdbc.ClientDataSource",
    url="jdbc:derby://localhost:1527/myDB",
    user="lance",
    password="secret"
 )

Пример поискаИсточник данных из EJB:

@Stateless
 public class MyStatelessEJB {
   @Resource(lookup="java:global/MyApp/myDataSource")
    DataSource myDB;
      ...
 }

1 Ответ

0 голосов
/ 04 июня 2012

Согласно документации,

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/

весна не знает об этой аннотации.

Но, как всегда, вы можете использовать аннотацию Spring @Configuration для объявления своего источника данных в коде:

Пример:

@Configuration
public class DatabaseConfig {
    @Bean
    public DataSource dataSource() {
        // instantiate, configure and return DataSource
    }
}

Другие примеры здесь: http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/context/annotation/Configuration.html

Если вам нужен доступ к ресурсу JNDI, вы можете использовать пространство имен jee Spring (конфигурация xml), объясненное в: http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/xsd-config.html#xsd-config-body-schemas-jee, раздел C.2.3 Схема jee.

Пример: * * один тысяча двадцать-одна

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/MyJdbcDataSource" />
...