我正在用Spring 3編寫一個Java應用程序。它與xml一起工作良好,但在註釋中完全不工作。@Spring3的值註釋在我的程序中不起作用
這裏是我的代碼片段:
@Service("oracleDB")
public class OracleDatabase implements IDatabase
{
@Value("oracle.jdbc.driver.OracleDriver")
private String driverName;
@Value("jdbc:oracle:thin:@")
private String url;
public String getDriverName()
{
return driverName;
}
}
我applicationContext.xml的是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config />
<context:component-scan
base-package="com.pdiwt.database"></context:component-scan>
</beans>
MyInvoker是這樣的:
public class MyInvoker{
public static void main(String args[]){
XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
OracleDatabase oracelDB = beanFactory.getBean("oracleDB");
System.out.println(oracleDB.getDriverName());
}
}
你猜怎麼着?結果爲空。有什麼不對的嗎?
OracleDatabase oracelDB = beanFactory.getBean(「oraceDB」);你已經找到並糾正了這個錯字錯誤,對嗎? (bean的名字應該是oracleDB) – ruhsuzbaykus
是的,bean的名字是oracleDB,我寫錯了。問題是爲什麼自動裝配不起作用?它是否與beanFactory.getBean()有關?我知道,如果我啓動由new()手動分類,自動裝配不起作用。 – Shuo
「新」和自動裝配是排他性的。如果你調用「new」,這個bean不在Spring的控制之下。 – duffymo