1. 准备工作
先创建一个JavaBean,也就是实体对象类
这里的例子是:
包:com.bingchunmoli.bean.Person
属性: private String lastName;private Integer age;private String gender;private String email;
生成get,set方法,tostring方法,无参构造以及有参构造,
代码:

package com.bingchunmoli.bean;
    /**
    * @ClassName Person
    * @Description JavaBean
    * @Author 冰彦糖
    * @Data 2020/2/20 1:36
    * @version 1.0
    **/
    public class Person {
        private String lastName;
        private Integer age;
        private String gender;
        private String email;

        public Person(String lastName, Integer age, String gender, String email) {
            this.lastName = lastName;
            this.age = age;
            this.gender = gender;
            this.email = email;
        }

        public Person(String lastName, Integer age, String gender) {
            this.lastName = lastName;
            this.age = age;
            this.gender = gender;
        }

        public Person(String lastName, String email, String gender) {
            this.lastName = lastName;
            this.email = email;
            this.gender = gender;
        }

        public Person() {

        }

        @Override
        public String toString() {
            return "Person{" +
                    "lastName='" + lastName + '\'' +
                    ", age=" + age +
                    ", gender='" + gender + '\'' +
                    ", email='" + email + '\'' +
                    '}';
        }

        public String getLastName() {
            return lastName;
        }

        public void setLastName(String lastName) {
            this.lastName = lastName;
        }

        public Integer getAge() {
            return age;
        }

        public void setAge(Integer age) {
            System.out.println("setageing:"+age);
            this.age = age;
        }

        public String getGender() {
            return gender;
        }

        public void setGender(String gender) {
            this.gender = gender;
        }

        public String getEmail() {
            return email;
        }

        public void setEmail(String email) {
            this.email = email;
        }
    }
  1. javabean的配置
    <bean class="com.bingchunmoli.bean.Person" id="person">
        <property name="lastName" value="张三"></property>
        <property name="gender" value="男"></property>
        <property name="age" value="13"></property>
        <property name="email" value="1@qq.com"></property>
    </bean>
    <!--    注册一个Person对象,Spring会自动创建这个Person对象-->
    <!--    一个bean可以注册一个组件(对象,类)-->
    <bean class="com.bingchunmoli.bean.Person" id="person1" p:age="13" name="person1" p:email="test" p:gender="无" p:lastName="test张三">
    </bean>

    <!--    有参构造器赋值-->
    <bean id="person2" class="com.bingchunmoli.bean.Person">
        <constructor-arg name="lastName" value="张"></constructor-arg>
        <constructor-arg name="gender" value="里"></constructor-arg>
        <constructor-arg name="age" value="13"></constructor-arg>
        <constructor-arg name="email" value="11"></constructor-arg>
    </bean>

    <bean id="person3" class="com.bingchunmoli.bean.Person">
        <constructor-arg value="name"></constructor-arg>
        <constructor-arg value="13"></constructor-arg>
        <constructor-arg value="nan"></constructor-arg>
        <constructor-arg value="@"></constructor-arg>
    </bean>

    <bean id="person4" class="com.bingchunmoli.bean.Person">
        <constructor-arg value="name"></constructor-arg>
        <constructor-arg value="11"></constructor-arg>
        <constructor-arg value="@" index="3"></constructor-arg>
        <constructor-arg value="nan" ></constructor-arg>
    </bean>

注:
    1.1、bean标签的作用
bean标签用于配置被spring容器管理的bean的信息
        注意:bean标签配置的bean的创建默认是调用无参数的构造方法,若没有无参构造方法则不能创建成功。
    1.2、bean标签属性
    id:给对象在容器中提供一个唯一标识。用于获取对象。
    class:指定类的全限定名。用于反射创建对象。默认情况下调用无参构造函数。
    scope:指定对象的作用范围。
    singleton:默认值,单例的(在整个容器中只有一个对象).
    prototype:多例的
    request:将Spring 创建的 Bean 对象存入到 request 域中.
    session:将Spring 创建的 Bean 对象存入到 session 域中.
    global session:WEB 项目中,应用在 Portlet 环境.如果没有 Portlet 环境那么globalSession 相当于 session。
    init-method:指定类中的初始化方法名称。
    destroy-method:指定类中销毁方法名称。比如DataSource的配置中一般需要指定destroy-method=“close”。
    lazy-init:ApplicationContext实现的默认行为就是在启动时将所有 singleton bean进行实例化。lazy-init可以延迟初始化,设置lazy-init="true"使得Ioc容器在第一次需要bean的时候进行实例化。
3. 验证:
新建test包或者在mavenTest包下新建类 包含以下方法

@Test
        public void Test(){
    //        ApplicationContext:代表ico容器
    //        ClassPathXmlApplicationContext:当前应用的xml配置文件在ClassPath下。
    //        根据spring的配置文件得到ioc容器对象
            ApplicationContext ioc = new ClassPathXmlApplicationContext("Spring.xml");
    //        配置文件在系统路径下并不在项目路径下 使用:FileSystemXmlAppcationContext("路径");
    //        Person bean = (Person) ioc.getBean("person1");
    //          使用name值获取
    //        Person person = ioc.getBean(Person.class);
    //          使用class反射获取,缺点如果有多个同类型声明会报异常,优点不需要强转类型
            Person person1 = ioc.getBean("person4",Person.class);
    //      通过name值和class反射获取,优点可以有多个同类型声明,且不需要强转
            System.out.println(person1);
    }

努力决定态度,态度决定高度.