Spring框架 IOC容器

Spring框架概述:

Spring框架是轻量级的开源JavaEE框架,可以解决企业应用开发的复杂性

Spring两个核心部分:IOC和AOP

(1)IOC:控制反转,把创建对象过程交给Spring进行管理
(2)AOP:面向切面,不修改源代码的情况下进行功能增强

Spring特点

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

一、IOC容器:

1、什么是IOC(控制反转)

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

2、IOC底层

xml解析、工厂模式、反射

3、Spring提供的IOC容器实现的两种方式(两个接口)

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

二、IOC容器-Bean管理:

1、IOC操作Bean管理

  • Spring创建对象
  • Spring注入属性

2、基于XML配置文件创建对象

  • 使用bean标签,添加对应的属性就额可以实现对象创建
  • id属性:唯一标识
  • class属性:类全路径(包类路径)
  • 创建对象,默认是执行无参构造方法
<!--Spring创建对象-->
<bean id="hello" class="cn.dao.impl.HelloImpl"></bean>

3、基于XML方式注入属性

  • property完成属性注入
  • name:类里面属性名称
  • value:想属性注入的值
<!--Spring创建对象-->
<bean id="hello" class="cn.dao.impl.HelloImpl"></bean>
<!--Spring注入属性-->
<property name="bname" value="老人与海"></property>
<property name="bauthor" value="海明威"></property>

简单实例:

一、接口

package cn.dao;

public interface HelloDao {
    public void sayHello();
}

二、接口实现类

package cn.dao.impl;

import cn.dao.HelloDao;

public class HelloImpl implements HelloDao {

    private String name;

    public String getName() {
        return name;
    }

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

    @Override
    public void sayHello() {
        System.out.println("Hello "+name);
    }
}

三、Spring.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">

    <bean id="hello" class="cn.dao.impl.HelloImpl">
        <property name="name" value="李知恩"></property>
    </bean>

</beans>

四、测试类

package cn.spring;

import cn.dao.HelloDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

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

    public static void test01() {
        // 创建Spring容器  需要填入配置文件的名称
        ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
        // 从IOC中获取Bean实例
        HelloDao hello = ac.getBean("hello", HelloDao.class);
        // 调用方法
        hello.sayHello();
    }
}

结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值