Spring 导入资源不工作
我刚刚开始学习Spring,创建几个类并通过construtor arg或setter传递Spring配置文件中的值很容易Spring 导入资源不工作,spring,dependency-injection,Spring,Dependency Injection,我刚刚开始学习Spring,创建几个类并通过construtor arg或setter传递Spring配置文件中的值很容易 如果我将给另一个配置文件提供一个属性引用,考虑一下我的两个类用户和Vehical的简单程序和两个Spring配置文件FrestBeN.xml和SeaBeNAN.xml和一个具有以下主要方法的应用程序类- 目录结构- package com.common; public class User { public String username; public Veh
如果我将给另一个配置文件提供一个属性引用,考虑一下我的两个类用户和Vehical的简单程序和两个Spring配置文件FrestBeN.xml和SeaBeNAN.xml和一个具有以下主要方法的应用程序类-
目录结构-package com.common;
public class User {
public String username;
public Vehical vehical;
public User() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Vehical getVehical() {
return vehical;
}
public void setVehical(Vehical vehical) {
this.vehical = vehical;
}
}
package com.common;
public class Vehical {
public String vehicalname;
public Vehical() {
}
public Vehical(String vehicalname) {
super();
this.vehicalname = vehicalname;
}
}
package com.main;
import com.common.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
ApplicationContext context=new ClassPathXmlApplicationContext("com/bean/FirstBean.xml");
User user =(User) context.getBean("userClass");
String s= user.toString();
System.out.println(s);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="com/bean/SecondBean.xml"/>
<bean id="userClass" name="User" class="com.common.User">
<property name="username" value="Sushant"></property>
<property name="vehical" ref="vehicalClass"></property>
</bean>
</beans>
?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="vehicalClass" name="Vehical" class="com.common.Vehical">
<constructor-arg value="pulser"></constructor-arg>
</bean>
</beans>
User.java-
package com.common;
public class User {
public String username;
public Vehical vehical;
public User() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Vehical getVehical() {
return vehical;
}
public void setVehical(Vehical vehical) {
this.vehical = vehical;
}
}
package com.common;
public class Vehical {
public String vehicalname;
public Vehical() {
}
public Vehical(String vehicalname) {
super();
this.vehicalname = vehicalname;
}
}
package com.main;
import com.common.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
ApplicationContext context=new ClassPathXmlApplicationContext("com/bean/FirstBean.xml");
User user =(User) context.getBean("userClass");
String s= user.toString();
System.out.println(s);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="com/bean/SecondBean.xml"/>
<bean id="userClass" name="User" class="com.common.User">
<property name="username" value="Sushant"></property>
<property name="vehical" ref="vehicalClass"></property>
</bean>
</beans>
?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="vehicalClass" name="Vehical" class="com.common.Vehical">
<constructor-arg value="pulser"></constructor-arg>
</bean>
</beans>
Vehical.java-
package com.common;
public class User {
public String username;
public Vehical vehical;
public User() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Vehical getVehical() {
return vehical;
}
public void setVehical(Vehical vehical) {
this.vehical = vehical;
}
}
package com.common;
public class Vehical {
public String vehicalname;
public Vehical() {
}
public Vehical(String vehicalname) {
super();
this.vehicalname = vehicalname;
}
}
package com.main;
import com.common.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
ApplicationContext context=new ClassPathXmlApplicationContext("com/bean/FirstBean.xml");
User user =(User) context.getBean("userClass");
String s= user.toString();
System.out.println(s);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="com/bean/SecondBean.xml"/>
<bean id="userClass" name="User" class="com.common.User">
<property name="username" value="Sushant"></property>
<property name="vehical" ref="vehicalClass"></property>
</bean>
</beans>
?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="vehicalClass" name="Vehical" class="com.common.Vehical">
<constructor-arg value="pulser"></constructor-arg>
</bean>
</beans>
App.java-
package com.common;
public class User {
public String username;
public Vehical vehical;
public User() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Vehical getVehical() {
return vehical;
}
public void setVehical(Vehical vehical) {
this.vehical = vehical;
}
}
package com.common;
public class Vehical {
public String vehicalname;
public Vehical() {
}
public Vehical(String vehicalname) {
super();
this.vehicalname = vehicalname;
}
}
package com.main;
import com.common.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
ApplicationContext context=new ClassPathXmlApplicationContext("com/bean/FirstBean.xml");
User user =(User) context.getBean("userClass");
String s= user.toString();
System.out.println(s);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="com/bean/SecondBean.xml"/>
<bean id="userClass" name="User" class="com.common.User">
<property name="username" value="Sushant"></property>
<property name="vehical" ref="vehicalClass"></property>
</bean>
</beans>
?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="vehicalClass" name="Vehical" class="com.common.Vehical">
<constructor-arg value="pulser"></constructor-arg>
</bean>
</beans>
FirstBean.xml-
package com.common;
public class User {
public String username;
public Vehical vehical;
public User() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Vehical getVehical() {
return vehical;
}
public void setVehical(Vehical vehical) {
this.vehical = vehical;
}
}
package com.common;
public class Vehical {
public String vehicalname;
public Vehical() {
}
public Vehical(String vehicalname) {
super();
this.vehicalname = vehicalname;
}
}
package com.main;
import com.common.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
ApplicationContext context=new ClassPathXmlApplicationContext("com/bean/FirstBean.xml");
User user =(User) context.getBean("userClass");
String s= user.toString();
System.out.println(s);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="com/bean/SecondBean.xml"/>
<bean id="userClass" name="User" class="com.common.User">
<property name="username" value="Sushant"></property>
<property name="vehical" ref="vehicalClass"></property>
</bean>
</beans>
?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="vehicalClass" name="Vehical" class="com.common.Vehical">
<constructor-arg value="pulser"></constructor-arg>
</bean>
</beans>
SecondBean.xml-
package com.common;
public class User {
public String username;
public Vehical vehical;
public User() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Vehical getVehical() {
return vehical;
}
public void setVehical(Vehical vehical) {
this.vehical = vehical;
}
}
package com.common;
public class Vehical {
public String vehicalname;
public Vehical() {
}
public Vehical(String vehicalname) {
super();
this.vehicalname = vehicalname;
}
}
package com.main;
import com.common.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
ApplicationContext context=new ClassPathXmlApplicationContext("com/bean/FirstBean.xml");
User user =(User) context.getBean("userClass");
String s= user.toString();
System.out.println(s);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="com/bean/SecondBean.xml"/>
<bean id="userClass" name="User" class="com.common.User">
<property name="username" value="Sushant"></property>
<property name="vehical" ref="vehicalClass"></property>
</bean>
</beans>
?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="vehicalClass" name="Vehical" class="com.common.Vehical">
<constructor-arg value="pulser"></constructor-arg>
</bean>
</beans>
?xml version=“1.0”encoding=“UTF-8”>
在FirstBean.xml中,我导入了SecondBean.xml的资源,并使用ref引用了它,但它没有得到它。我怎样才能解决这个问题?我不确定我正在尝试做的事情是否可行。替换
使用
发布异常堆栈跟踪请参见first bean属性名vehical,我给出了未被识别的vehicalClass的参考,vehicalClass bean存在于另一个conf文件SecondBean.xml中。没有错误,只是eclipse即使在导入Secondbean.xml的资源后也无法解析vehicalClass。谢谢,这非常简单。但在spring文档中,明确提到要编写路径,可能是因为这两个xml都在同一个目录中。再次感谢。我已将我的评论更新为答案,请接受,以便将来的用户更容易使用。谢谢