spring,运行java类报错cvc-elt.1.a: 找不到元素 'beans' 的声明

java运行类
package setter_project;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Manage {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("UserBean.xml");
        User user = (User)applicationContext.getBean("User");
        System.out.println("获取bean的name: " + user.getName());
        System.out.println("获取bean的age: " + user.getAge());
        System.out.println("获取bean的sex: " + user.getSex());
    }
}


java信息类
package setter_project;

public class User {
    private String name;
    private String age;
    private String sex;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}


xml文件

<beans>
    <bean id="user" class="setter_project.User">
        <prperty name="name">
            <value>张三value>
        prperty>
        <prperty name="age">
            <value>20value>
        prperty>
        <prperty name="sex">
            <value>value>
        prperty>
    bean>
beans>


项目结构(maven)

img

我看网上说bean需要配置在applicationContext.xml中,这个文件在什么位置,我是用maven配置的Spring,没有去网上下载相关包

applicationContext.xml应该放在根目录下,spring必须有这个文件

你的UserBean.xml里面里面的头信息呢????

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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
```xml


```

applicationContext.xml需要自己写放到resource下面。使用ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");加载,里面内容就是楼上老哥说的beans声明信息,和你的bean定义

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
根据你提供的代码和错误信息,有两个问题需要解决:

  1. xml文件配置错误:xml文件中的property标签拼写错误,正确的是;另外,标签的id属性和获取bean的名称不一致,需要保持一致,即将id改为User。

修改后的xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans>
    <bean id="User" class="setter_project.User">
        <property name="name">
            <value>张三</value>
        </property>
        <property name="age">
            <value>20</value>
        </property>
        <property name="sex">
            <value></value>
        </property>
    </bean>
</beans>
  1. ApplicationContext的配置问题:通常情况下,我们需要在spring配置文件中引用其他的spring配置文件,这就需要用到ApplicationContext的配置了。有两种方式:

(1)在xml文件中使用import标签引用其他文件,例如在UserBean.xml文件中使用import标签引用其他文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans>
    <import resource="ApplicationContext.xml"/>
    <bean id="User" class="setter_project.User">
        <property name="name">
            <value>张三</value>
        </property>
        <property name="age">
            <value>20</value>
        </property>
        <property name="sex">
            <value></value>
        </property>
    </bean>
</beans>

然后在ApplicationContext.xml文件中配置相应的bean。

(2)在java代码中直接创建ApplicationContext对象,并指定配置文件位置,例如在Manage类中修改如下:

public class Manage {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:ApplicationContext.xml");
        User user = (User)applicationContext.getBean("User");
        System.out.println("获取bean的name: " + user.getName());
        System.out.println("获取bean的age: " + user.getAge());
        System.out.println("获取bean的sex: " + user.getSex());
    }
}

这里的ApplicationContext.xml是一个新建的Spring配置文件,用于配置相应的bean,并放在src/main/resources目录下。

<?xml version="1.0" encoding="UTF-8"?>
<beans>
    <bean id="User" class="setter_project.User">
        <property name="name">
            <value>张三</value>
        </property>
        <property name="age">
            <value>20</value>
        </property>
        <property name="sex">
            <value></value>
        </property>
    </bean>
</beans>

注意:在使用classpath:前缀时,不要漏掉冒号。

参考链接:
https://www.cnblogs.com/jin-shiyuan/p/9043805.html
https://www.baeldung.com/spring-classpathxmlapplicationcontext
如果我的回答解决了您的问题,请采纳