spring jndi 怎么连接

fiy 其他 56

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Spring提供了简单便捷的方式来连接JNDI(Java Naming and Directory Interface)。下面以示例代码的方式来讲解Spring框架中如何连接JNDI。

    首先,确保在你的Spring项目中已经添加了相应的JNDI库的依赖。

    然后,创建一个JNDI数据源配置文件,比如"jndi.properties",在该文件中配置JNDI连接的相关信息,如下所示:

    java.naming.factory.initial = org.apache.naming.java.javaURLContextFactory
    java.naming.factory.url.pkgs = org.apache.naming

    //配置具体的JNDI数据源
    java.naming.provider.url = 你的JNDI连接地址

    接下来,在Spring配置文件中,通过配置Spring JNDI数据源来连接JNDI。比如,如果你使用的是XML配置文件,可以使用以下方式配置:

    如果你使用的是Java配置类,可以使用以下方式配置:

    @Bean(name = "dataSource")
    public DataSource dataSource() throws NamingException {
    JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean();
    jndiObjectFactoryBean.setJndiName("你的JNDI数据源名称");
    jndiObjectFactoryBean.setProxyInterface(DataSource.class);
    jndiObjectFactoryBean.setLookupOnStartup(false);
    jndiObjectFactoryBean.afterPropertiesSet();
    return (DataSource) jndiObjectFactoryBean.getObject();
    }

    最后,在你的代码中,通过@Autowired注解或者使用JdbcTemplate等工具类来使用JNDI数据源。

    这就是使用Spring连接JNDI的基本步骤。通过以上配置,你就可以在Spring中轻松地使用JNDI数据源来连接数据库或其他资源。希望以上内容能对你有所帮助。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Spring框架提供了多种方式来连接JNDI(Java命名和目录接口)服务,下面是几种常见的方式:

    1. 使用Spring的JndiObjectFactoryBean:
      在Spring配置文件中,可以使用JndiObjectFactoryBean来创建JNDI连接。首先,需要在配置文件中配置JndiObjectFactoryBean,并设置jndiName(JNDI名称)和jndiEnvironment(JNDI环境参数)。然后,通过使用JndiObjectFactoryBean的getObject方法即可获得JNDI连接对象。

      示例代码:

       <bean id="jndiObjectFactoryBean" class="org.springframework.jndi.JndiObjectFactoryBean">
           <property name="jndiName" value="java:comp/env/myJndiResource"/>
           <property name="jndiEnvironment">
               <props>
                   <prop key="java.naming.factory.initial">com.sun.jndi.rmi.registry.RegistryContextFactory</prop>
                   <prop key="java.naming.provider.url">rmi://localhost:1099</prop>
               </props>
           </property>
       </bean>
       
       <bean id="myJndiConnection" factory-bean="jndiObjectFactoryBean" factory-method="getObject"/>
      
    2. 使用Spring的JndiTemplate:
      Spring的JndiTemplate类提供了简化JNDI操作的工具方法。可以通过JndiTemplate的lookup方法来获取JNDI连接对象。在配置文件中需要配置JndiTemplate,并注入JNDI环境参数,然后通过调用lookup方法即可获取JNDI连接。

      示例代码:

      <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
          <property name="environment">
              <props>
                  <prop key="java.naming.factory.initial">com.sun.jndi.rmi.registry.RegistryContextFactory</prop>
                  <prop key="java.naming.provider.url">rmi://localhost:1099</prop>
              </props>
          </property>
      </bean>
      
      <bean id="myJndiConnection" class="com.example.MyJndiConnectionFactory">
          <property name="jndiTemplate" ref="jndiTemplate"/>
          <property name="jndiName" value="java:comp/env/myJndiResource"/>
      </bean>
      
    3. 使用Spring的SimpleNamingContextBuilder:
      Spring的SimpleNamingContextBuilder类提供了在测试环境中创建和管理JNDI命名空间的功能。可以使用SimpleNamingContextBuilder来创建JNDI连接,并将其设置为全局默认上下文。

      示例代码:

      SimpleNamingContextBuilder builder = SimpleNamingContextBuilder.emptyActivatedContextBuilder();
      builder.bind("java:comp/env/myJndiResource", new MyJndiConnection());
      // 将SimpleNamingContextBuilder设置为全局默认上下文
      builder.activate();
      
    4. 使用Spring Boot的JNDI配置:
      如果使用Spring Boot框架开发应用,可以在application.properties或application.yml配置文件中进行JNDI连接的配置。配置格式如下:

      application.properties:

      spring.datasource.jndi-name=java:comp/env/myJndiResource
      

      application.yml:

      spring:
        datasource:
          jndi-name: java:comp/env/myJndiResource
      
    5. 使用Spring的JndiLocatorDelegate:
      Spring的JndiLocatorDelegate类是一个工具类,用于查找JNDI连接。可以通过调用JndiLocatorDelegate的lookup方法来获取JNDI连接对象。

      示例代码:

      JndiLocatorDelegate jndiLocator = new JndiLocatorDelegate();
      MyJndiConnection myJndiConnection = jndiLocator.lookup("java:comp/env/myJndiResource", MyJndiConnection.class);
      

    以上是几种常见的使用Spring框架连接JNDI的方式。根据具体的应用场景和需求,可以选择合适的方式来连接JNDI服务。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    连接Spring JNDI需要以下步骤:

    1. 添加依赖
      首先,在项目的构建文件(如Maven的pom.xml)中添加Spring JNDI的依赖。可以使用以下依赖项:
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.0.8.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jndi</artifactId>
        <version>5.0.8.RELEASE</version>
    </dependency>
    
    1. 配置JNDI资源
      在应用程序的上下文配置文件(如applicationContext.xml)中配置JNDI资源。例如,如果要连接到JDBC数据源,可以使用以下示例配置:
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="java:comp/env/jdbc/DataSourceName" />
    </bean>
    
    1. 获取JNDI资源
      在应用程序中需要使用JNDI资源的地方,使用Spring的ApplicationContext来获取资源。以下是一个示例:
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    DataSource dataSource = (DataSource) context.getBean("dataSource");
    
    1. 使用JNDI资源
      现在可以使用获取到的JNDI资源(如DataSource)来执行数据库操作了。以下是一个简单的示例:
    Connection connection = dataSource.getConnection();
    PreparedStatement statement = connection.prepareStatement("SELECT * FROM table_name");
    ResultSet resultSet = statement.executeQuery();
    while (resultSet.next()) {
        // 处理结果集
    }
    resultSet.close();
    statement.close();
    connection.close();
    

    以上是连接Spring JNDI的步骤。通过配置JNDI资源和使用Spring的ApplicationContext来获取资源,我们可以方便地在Spring应用程序中使用JNDI资源。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部