Spring5 IOC

IOC(概念和理念)

1.什么是IOC
(1)控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
(2)IOC的优点:可以降低耦合度
(3)IOC实现入门案例
User:

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

Bean:

<bean id="user" class="com.hezhip.spring5.User"></bean>

Test:

public class TestSpring5 {
    @Test
    public void testadd(){
        //1.加载spring配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");

        //2.获取配置创建的对象
        User user = context.getBean("user", User.class);

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

2.IOC底层原理
(1)xml解析、工厂模式、反射
(2)IOC过程:
第一步: xml配置文件,配置创建的对象

<bean id="user" class="com.hezhip.spring5.User"></bean>

进一步降低耦合度
第二步: 有service类和dao类 ,创建工厂类

class UserFactory{
	public static UserDao getDao(){
		String classValue = class属性值;//xml解析
		Class clazz = Clazz.forName(classValue);//通过反射创建对象
		return (UserDao) clazz.newInstance();
}

}

IOC(BeanFactory接口)

1、IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
2、Spring提供IOC容器实现两种方式:(两个接口)
(1)BeanFactory:IOC容器基本实现,是spring内部的使用接口,不提供开发人员进行使用
**加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象
(2)ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般有开发人员进行使用
**加载配置文件时候就会把在配置文件对象进行创建
3、ApplicationContext接口有实现类

public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
    @Nullable
    String getId();

    String getApplicationName();

    String getDisplayName();

    long getStartupDate();

    @Nullable
    ApplicationContext getParent();

    AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值