spring学习 springIOC(一)

寵の児 提交于 2020-02-26 08:19:13

    刚刚开始学习java ssm框架,当作自己的学习笔记来写。理解方面可能会有错误,大佬们见谅~

        1.首先要知道springIOC是什么?

             ioc即“控制反转”,是通过java反射技术实现的,又被叫做DI即“依赖注入”。这玩意儿到底是个啥,个人认为可以理解为一个大的超级工厂(工厂模式--一种设计模式),他的作用是解决代码之间的耦合性问题,之前我们java对象都是new出来的,在springIOC中,我们可以通过其它方式(配置文件/注解)来实例化一系列对象,并将他们都扔进这个容器里,需要的时候直接取出来用就好了。

                      注解有一下几个

                                

       2.第一个简单的例子

           环境: win10 + idea + java8

           才开始使用idea感觉和之前学习时用的Android Studio挺像的,进入idea后新建一个spring项目,他会自己下载一些相关的jar包,可能是外网网速比较差。(关于idea有挺多快捷键可自行百度)

           完蛋,不想写了,这里贴一下自己的码了,沙雕代码 0.0

           目录结构 一共两包 学生老师课程,没啥内容setter/getter/toString。。 还有一个测试类 重要是是配置文件叭。如果想自己运行的话代码都在下边复制就ok啦。

           

 

applicationContext.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 方式1: 通过编写配置文件将对象注入springIoc容器 -->
    <bean id="student" class="com.piboring.mapper.Student">
        <property name="stuId" value="1"/>
        <property name="stuName" value="Bairz"/>
        <property name="stuAge" value="18"/>
    </bean>

    <bean id="teacher" class="com.piboring.mapper.Teacher">
        <property name="TName" value="Jinfeng Gao"/>
        <property name="TAge" value="30"/>
    </bean>

    <!-- 注意teacher是一个复杂类型,参考Teacher bean的id -->
    <bean id="course" class="com.piboring.mapper.Course">
        <property name="cname" value="Scala"/>
        <property name="teacher" ref="teacher"/>
    </bean>
</beans>

Test.java

package com.piboring.test;

import com.piboring.mapper.Course;
import com.piboring.mapper.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public static void main(String[] args) {
        springIocByConf();
    }

    public static void springIocByConf(){
        //解析配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml") ;
        //获取学生对象
        Student stu = (Student)context.getBean("student");
        System.out.println(stu.toString());;
        //获取学生对象
        Course course = (Course)context.getBean("course");
        System.out.println(course.toString());
    }
}

Student.java

package com.piboring.mapper;

public class Student {
    private String StuId;
    private String StuName;
    private String StuAge;

    public Student() {
    }

    public Student(String stuId, String stuName, String stuAge) {
        StuId = stuId;
        StuName = stuName;
        StuAge = stuAge;
    }

    public String getStuId() {
        return StuId;
    }

    public String getStuName() {
        return StuName;
    }

    public String getStuAge() {
        return StuAge;
    }

    public void setStuId(String stuId) {
        StuId = stuId;
    }

    public void setStuName(String stuName) {
        StuName = stuName;
    }

    public void setStuAge(String stuAge) {
        StuAge = stuAge;
    }

    @Override
    public String toString() {
        return "Student{" +
                "StuId='" + StuId + '\'' +
                ", StuName='" + StuName + '\'' +
                ", StuAge='" + StuAge + '\'' +
                '}';
    }
}

Course.java

package com.piboring.mapper;

public class Course {
    private String Cname;
    private Teacher teacher;

    public Course() {
    }

    public Course(String cname, Teacher teacher) {
        Cname = cname;
        this.teacher = teacher;
    }

    public String getCname() {
        return Cname;
    }

    public void setCname(String cname) {
        Cname = cname;
    }

    public Teacher getTeacher() {
        return teacher;
    }

    public void setTeacher(Teacher teacher) {
        this.teacher = teacher;
    }

    @Override
    public String toString() {
        return "Course{" +
                "Cname='" + Cname + '\'' +
                ", teacher=" + teacher +
                '}';
    }
}

Teacher.java

package com.piboring.mapper;

public class Teacher {
    private String TName;
    private String TAge;

    public Teacher() {
    }

    public Teacher(String TName, String TAge) {
        this.TName = TName;
        this.TAge = TAge;
    }

    public String getTName() {
        return TName;
    }

    public void setTName(String TName) {
        this.TName = TName;
    }

    public String getTAge() {
        return TAge;
    }

    public void setTAge(String TAge) {
        this.TAge = TAge;
    }

    @Override
    public String toString() {
        return "Teacher{" +
                "TName='" + TName + '\'' +
                ", TAge='" + TAge + '\'' +
                '}';
    }
}

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!