1.开始Spring

1 对Spring的认识

为了实现控制反转,我们可以想象java创建了一个工厂类,工厂类可以去读取配置文件 比如一个.property文件。通过这个文件中的配置,反射创建一些对象,当外界需要某个类的对象的时候,就像这个工厂索取。

但是存在一个问题,那就是每次索取都会创建一个新的对象,而不是单例的。于是java就弄了一个Map字典,维护这一个字典,只要用户需要的对象不存在,就把对象创建好装进这个字典。如果用户需要的对象在

这个字典中存在,就直接从这个字典中取,这就实现了单例,我们将这个字典视为一个存放类对象的容器。它以后发展为我们所谓的ioc容器——ApplicationContext。

2.一个最简单的Spring 控制反转案例如下:

a.创建一个接口和接口的实现如下:

package com.itheima.service;

public interface IAccountService {
    void saveAccount();
}

package com.itheima.service.impl;

import com.itheima.service.IAccountService;

public class AccountServicePureImpl implements IAccountService {
    public void saveAccount() {
        System.out.println("朝辞白帝彩云间");
    }
}

b.在Resource下创建一个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-3.0.xsd">


    <bean id="accountServicePureImpl" class="com.itheima.service.impl.AccountServicePureImpl"></bean>


    </beans>

c.如果要调用这个接口的实现类 首先要创建容器

扫描二维码关注公众号,回复: 7296493 查看本文章
package com.itheima.ui;

import com.itheima.service.IAccountService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Client {
    public static void main(String[] args) {
        //告诉容器去读bean.xml中的配置  ClassPathXmlApplicationContext 是容器的三个主要常用的实现类之一
        ApplicationContext context=new ClassPathXmlApplicationContext("bean.xml");
        IAccountService ac=(IAccountService)context.getBean("accountServicePureImpl");
        ac.saveAccount();
    }
}

 3.IOC有三种IOC方式 第一 set方法 注意必须要有set方法  不能只定义一个变量  第二 构造函数  第三注解注入

package com.itheima.service.impl;

import com.itheima.dao.IAccountDao;
import com.itheima.service.IAccountService;

public class AccountServiceImpl implements IAccountService {
    private IAccountDao accountDao=null;
    public void setAccountDao(IAccountDao accountDao) {
        this.accountDao = accountDao;
    }


    public void saveAccount() {
        accountDao.saveAccount();
    }
}
---------------以上是实现类--------------------

下面是配置

<?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-3.0.xsd">
    <bean id="accountServiceImpl" class="com.itheima.service.impl.AccountServiceImpl">
        <property ref="accountDaoImpl" name="accountDao"></property>
    </bean>
    <bean id="accountDaoImpl" class="com.itheima.dao.impl.AccountDaoImpl"></bean>


    </beans>

三生三世

猜你喜欢

转载自www.cnblogs.com/wholeworld/p/11531085.html
今日推荐