Spring5 | 介绍以及IOC容器部分

一.Spring概念

  1. Spring是轻量级的开源的JavaEE框架
  2. Spring可以解决企业应用开发的复杂性
  3. Spring有两个核心部分:IOC和Aop

IOC:控制反转,把创建对象过程交给spring进行管理
Aop:面向切面,不修改源代码进行功能增强

  1. 特点

方便解耦,简化开发
Aop编程支持
方便程序测试
方便和其他框架进行整合
方便进行事务操作
降低API开发难度

下载:
spring下载地址

入门案例:
scr/bean1

<?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="com.atguigu.spring5.User"></bean>
</beans>

User

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

testdemo/TestSpring5

public class TestSpring5 {
   
    @Test
    public void testAdd(){
   
        // 加载Spring配置文件
        ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");
        // 获取配置创建的对象
        User user=context.getBean("user", User.class);

        System.out.println(user);
        user.add();
    }
}

输出:
com.atguigu.spring5.User@3e58a80e
add…

二.IOC容器

1.IOC底层原理
  1. 什么是IOC

控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
使用IOC目的:降低耦合度

  1. 底层原理

IOC过程
第一步:xml配置文件,配置创建的对象
<bean id="dao" class="com.atguigu.spring5.UserDao"></bean>
第二步:有service类和dao类,创建工厂类

class UserFactory{
   
    public static UserDao getDao(){
   
        String classValue=class属性值; // xml解析
        Class clazz=Class.forName(classValue);
        return (UserDao) clazz.newInstance();
    }
}
2.IOC接口(BeanFactory)
  • IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
  • Spring提供IOC容器实现的两种方式:

BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员使用。加载配置文件时候不会创建对象,在获取对象(使用)才创建对象。
ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用。加载配置文件时候会把在配置文件中的对象创建。

  • ApplicationContext主要实现类
3.IOC操作Bean管理(基于xml)
什么是Bean管理:
Spring创建对象、Spring注入属性
基于xml方式创建对象
<bean id="dao" class="com.atguigu.spring5.UserDao"></bean>

在spring配置文件种,使用bean标签,标签里面添加对应属性,就可以实现对象创建

  • id属性 : 唯一标识
  • class属性 : 类全路径(包全路径)

创建对象的时候,默认执行无参数构造方法

基于xml方式注入属性

DI:依赖注入,就是注入属性

第一种注入方式:使用set方法进行注入

创建类,定义属性和对应的set方法
在spring配置文件配置对象创建,配置属性注入

public class Book {
   
    private String bname;
    private String bauthor;

    public void setBname(String bname) {
   
        this.bname = bname;
    }

    public void setBauthor(String bauthor) {
   
        this.bauthor = bauthor;
    }
}
<!--set方法注入属性-->
    <bean id="book" class="com.atguigu.spring5.Book">
        <property name="bname" value="西游记"></property>
        <property name="bauthor" value="罗贯中"></property>
    </bean>

第一种注入方式:使用有参构造进行注入

创建类,定义属性,创建属性对应有参数构造方法
在spring配置文件种进行配置

public class Orders {
   
    private String oname;
    private String address;

    public Orders(String oname, String address) {
   
        this.oname = oname;
        this.address = address;
    }
}
	<bean id="orders" class="com.atguigu.spring5.Orders">
        <constructor-arg name="oname" value="电脑"></constructor-arg>
        <constructor-arg name="address" value="China"></constructor-arg>
    </bean>

xml注入其他类型属性:
字面量<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值