Spring5框架学习笔记

Spring5学习笔记

介绍:

1.引入相应jar包

导入:

ps:网上下载教程: https://repo.spring.io/release/org/springframework/spring/

入门案例:

1.打开idea,创建普通Java工程

2.导入jar包

3.创建普通类

public class User {
    public void say(){
        System.out.println("xddfjofjofij");
    }
}

4.创建spring配置文件(bean.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">
	<!--配置User对象创建-->
    <bean id="user" class="User"></bean>
</beans>

5.测试代码编写

public class TestSpring {
    @Test
    public void testAdd(){
        ApplicationContext context = new ClassPathXmlApplicationContext("Bean1.xml");
        User user = context.getBean("user",User.class);
        System.out.println(user);
        user.say();
    }

}

注意:因为xml文件配置时不小心多出来一个空格,导致报错

分析原因得知:

修改完成成功运行:

IOC容器:

概念:

底层原理:

IOC(接口):

ClassPathXmlApplicationContext:src目录下的文件
FileSystemXmlApplicationContext:具体盘符下的文件地址

IOC操作bean管理:

概念:

IOC操作bean管理(基于xml方式)

xml注入其他类型属性:

2.注入属性-外部bean

a.原始方式: 创建UserDao对象,调用相应方法。

b.

xml注入集合属性:

测试类:

@Test
    public void testCollection1() {
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean1.xml");
        Stu stu = context.getBean("stu", Stu.class);
        stu.test();
    }

stu类中的测试方法:

public void test() {
        System.out.println(Arrays.toString(courses));//注意这里数组的调用方法
        System.out.println(list);
        System.out.println(maps);
        System.out.println(sets);
        System.out.println(courseList);
    }

测试方法:

@Test
    public void testCollection2() {
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean2.xml");
        Book book1 = context.getBean("book", Book.class);
        Book book2 = context.getBean("book", Book.class);
        book.test();
        
    }

book类中的test方法:

public void test() {
        System.out.println(list);
    }
}

bean作用域:

1.在spring里面。设置创建bean实例是单实例还是多实例

bean生命周期:

emp类:

public class Emp {
    private Dept dept;
    public void setDept(Dept dept) {
        this.dept = dept;
    }

    @Override
    public String toString() {
        return "Emp{" +
                "dept=" + dept +
                '}';
    }

    public void test() {
        System.out.println(dept);
    }
}

测试类:

  @Test
    public void test4() {
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean5.xml");
        Emp emp = context.getBean("emp", Emp.class);
        System.out.println(emp);
    }

import org.springframework.stereotype.Repository;

@Repository()
public class UserDaoImpl implements UserDao {
    @Override
    public void add() {
        System.out.println("dao add.....");
    }
}

@Repository(value = "userDaoImpl1")
public class UserDaoImpl implements UserDao {
    @Override
    public void add() {
        System.out.println("dao add.....");
    }
}

以下原理需要加强!

webflux暂时未学,放在springmvc、springboot之后

posted @ 2021-06-26 22:06  小伟99  阅读(72)  评论(0编辑  收藏  举报