這可能是一個非常新手的問題,但我已經搜索過,或者我在理解上存在很大差距,或者我做了一些我無法弄清楚的錯誤。將數據源bean彈出注入或自動裝入類
在這裏我的上下文文件是摘錄
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${datasource.driverClassName}" />
<property name="url" value="${datasource.url}" />
<property name="username" value="${datasource.username}" />
<property name="password" value="${datasource.password}" />
</bean>
<bean id="myBeanOne" class="a.b.c.myBeanOne">
<property name="dataSource" ref="dataSource" />
</bean>
現在myBeanOne我:
private DataSource dataSource;
private JdbcTemplate jdbcTemplate;
@Autowired
public void setDataSource (DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public void myMethod() {
String sql = "'My generic SQL update query'";
try {
this.jdbcTemplate.update(sql);
} catch (org.springframework.dao.EmptyResultDataAccessException ex) {
}
System.exit(0);
}
,當我試圖在那裏的setDataSource調用我得到這個錯誤的行執行此:
ERROR org.springframework.integration.handler.LoggingHandler
org.springframework.integration.MessageHandlingException:
java.lang.NullPointerException
就行了:this.jdbcTemplate.update(sql);
我試過可能有十種不同的配置來使這個工作,但我似乎無法做到這一點。任何幫助表示讚賞,謝謝。
編輯:按Luiggi的評論:
//in yet another classes run method
myBeanOne bOne = SomeOtherClass.create(); //just returns new myBeanOne
bOne.myMethod();
無論SomeOtherClass或該類被列爲在上下文豆或在任何情況下存在。
我知道這是一個非常基本的問題,但我正在努力。
謝謝你的耐心等待。
您錯過了主要問題:您如何調用'MyBeanOne#myMethod'? –
正從另一個類(不在上下文文件中)調用它。 –
檢查是否在堆棧跟蹤中看到任何錯誤,如果數據庫連接未建立,則會發生此錯誤。除此之外,我沒有看到代碼問題。 – Phani