可以在Spring Context中使用@DataSourceDefinition注释吗?

时间:2011-06-01 16:38:56

标签: java spring java-ee-6

我可以使用新的@DataSourceDefinition而不是在Spring上下文中声明Datasource吗?

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

使用网址:

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

从EJB查找DataSource的示例:

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

1 个答案:

答案 0 :(得分:0)

根据文件,

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资源,可以使用Spring的jee名称空间(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" />