Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 导入资源不工作_Spring_Dependency Injection - Fatal编程技术网

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

我刚刚开始学习Spring,创建几个类并通过construtor arg或setter传递Spring配置文件中的值很容易

如果我将给另一个配置文件提供一个属性引用,考虑一下我的两个类用户和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都在同一个目录中。再次感谢。我已将我的评论更新为答案,请接受,以便将来的用户更容易使用。谢谢