Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Spring


Автор: fics 24.3.2008, 14:23
applicationContext.xml

Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/test"/>
</bean>
</beans>


В Web.xml создадаю листенер
Код

<listener>
 <listener-class>
     org.springframework.web.context.ContextLoaderListener
 </listener-class>
</listener>



теперь мне нужно вытянуть через этот листенер   в  классе UpdateData  переменную ctx через Spring для инициализации dataSource 
Код

dataSource = (DataSource)ctx.lookup("java:comp/env/jdbc/test");


Это все для того чтобы научиться работать со Spring, а не делать вот такой конструктор:
Context ctx = new InitialContext();


Вот DataSource "сам не создаю" а как  быть с ctx 
Код

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;


public class UpdateData{
    
private DataSource dataSource;

    public void setDbUtils(DataSource dataSource)
   {
     this.dataSource = dataSource;
   }


    public void UpdateClients() throws Exception {
        dataSource = (DataSource)ctx.lookup("java:comp/env/jdbc/test");
        Connection conn = null;
        Statement stmt = null;



        try {
             conn = dataSource.getConnection();
             stmt = conn.createStatement();
             stmt.executeUpdate("insert into clients values(1,'first','last','Lugansk')");
             stmt.close();
             conn.close();

            }catch(SQLException e){
           
        }
    }
}



Автор: fixxer 24.3.2008, 15:37
А почему бы не инджектить дасасорс в UpdateData c помощью spring?
Еще можно посмотреть org.springframework.jdbc.core.JdbcTemplate.

Автор: fics 24.3.2008, 21:03
Цитата(fixxer @  24.3.2008,  15:37 Найти цитируемый пост)
А почему бы не инджектить дасасорс в UpdateData c помощью spring?


Да все верно, тянет по инерции на "бин-архетектуру" )))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)