Spring的IOC学习1(IOC使用XML配置文件的基本使用)

前置条件:导入spring中需要的jar包
在这里插入图片描述

在这里插入图片描述
Spring的核心就是IOC(控制反转,及在获取对象时需要需new一个对象,使用IOC便是让别人给你一个对象)和AOP(面向切面)。
IOC的基本使用:
1、实体类创建:

package com.msb.bean;
public class Person {
    private int id;
    private String name;
    private int age;
    private String gender;
	
	public Person(){};

	public Person(int id, String name, int age, String gender) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.gender = gender;
    }


    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public String getGender() {
        return gender;
    }

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

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

2、ioc.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:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--
        bean标签,表示要创建的bean对象
        id:唯一标识符
        class:要创建的bean对象的完全地址
        默认是单例的
    -->
    <bean id="person" class="com.msb.bean.Person">
        <!--
            property:属性及赋值
            这里的传值是通过实体类中的setXXX传的,且是根据setXXX中的XXX实现的,若XXX与实体类中不对应,传值便会报错
        -->
        <property name="id" value="1"></property>
        <property name="name" value="zhangsan"></property>
        <property name="age" value="20"></property>
        <property name="gender" value="男"></property>
    </bean>


<!--根据带参构造方法进行赋值
        参数name的属性值是根据构造方法中的参数决定的,
        name属性可以省略,但是要注意顺序
        也可通过index属性根据下标方式进行指定,从0开始
     -->
    <bean id="person2" class="com.msb.bean.Person">
        <constructor-arg name="id" value="2"></constructor-arg>
        <constructor-arg name="name" value="lisi"></constructor-arg>
        <constructor-arg name="age" value="21"></constructor-arg>
        <constructor-arg name="gender" value="女"></constructor-arg>
    </bean>
	
	<!--若实体类对象中包含多个带参构造方法,且包含的参数不同赋值默认会赋值至最后一个,
            但可以通过type属性指定参数类型决定赋值的构造方法
        这里是type属性设置为java.lang.Integer,实体类中定义为int,需更换实体类变量类型
         -->
        <bean id="person3" class="com.msb.bean.Person">
            <constructor-arg name="id" value="3"></constructor-arg>
            <constructor-arg name="name" value="wangwu"></constructor-arg>
            <constructor-arg name="age" value="22" type="java.lang.Integer"></constructor-arg>
        </bean>
		<!--通过p命名空间对属性进行赋值,使用之前需要在头文件创建p的xmls-->
        <bean id="person5" class="com.msb.bean.Person" p:id="4" p:name="zhangwu" p:gender="男" p:age="23">
        </bean>
 </beans>

3、测试类:

package com.msb.test;

import com.msb.bean.Person;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {
    public static void main(String[] args) {
        //读取bean中配置文件
        /**
         * applicationContext:表示IOC容器的入口,想要获取对象的话就必须创建该类
         * 该类有两个实现配置文件的实现类
         * ClassPathXmlApplicationContext:从classpath中读取数据
         * FileSystemXmlApplicationContext:从当前文件系统读取数据
         */
         /**
         *  AppliCationContext是IOC容器的接口,可通过获取此对象获取容器中的对象
         *	单例模式下,对象在Spring容器创建的时候就已经创建完成了
         */
        ApplicationContext context = new ClassPathXmlApplicationContext("ioc.xml");
        //获取具体的bean对象,需要强制类型装换
        Person person = (Person) context.getBean("person");
        /**
        *   也可通过以下方式获取
        *   “person”是在ioc.xml中的id值
        *	Person person1 = context.getBean("person", Person.class);
        *   Person bean = context.getBean(Person.class);
        */
        
        System.out.println(person);
    }
}

总结
其实就是通过xml文件定义bean对象,再对对象属性进行赋值,赋值可通过属性直接赋值,也就是通过property标签直接赋值,也可以通过构造方法进行赋值constructor标签,然后要获取对象就是通过ApplicationContext进行获取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值