a、spring-framework-4.2.4.RELEASE:Spring Framework的官方发行包
b、spring-framework-3.0.2.RELEASE-dependencies:依赖的第三方jar包
位置: spring-framework-3.2.0.RELEASE\libs
jar包:
a、jar包位置:
spring-framework-3.0.2.RELEASE-dependencies\org.apache.commons\com.springsource.org.apache.commons.logging\1.1.1
b、jar包
3.配置spring核心配置文件
之前我们获取资源的方式:我们在获取对象时,都是采用new的方式。是主动的。
控制反转之后获取资源的方式:我们获取对象时,同时跟工厂要,有工厂为我们查找或者创建对象。是被动的。
a、创建java工程,导入jar包
c、编写配置文件
(1)、导入约束
(2)、编写配置文件
d、编写servcie层和dao层
package cn.itcast.dao;
/**
* 客户的持久层接口
* @author zhy
*
*/
public interface ICustomerDao {
/**
* 保存客户
*/
void saveCustomer();
}
package cn.itcast.dao.impl;
import cn.itcast.dao.ICustomerDao;
/**
* 客户的持久层实现类
* @author zhy
*
*/
public class CustomerDaoImpl implements ICustomerDao {
@Override
public void saveCustomer() {
System.out.println("保存了客户....");
}
}
package cn.itcast.service;
/**
* 客户的业务层接口
* @author zhy
*
*/
public interface ICustomerService {
/**
* 保存客户
*/
void saveCustomer();
}
package cn.itcast.service.impl;
import cn.itcast.dao.ICustomerDao;
import cn.itcast.service.ICustomerService;
/**
* 客户的业务层实现类
* @author zhy
*
*/
public class CustomerServiceImpl implements ICustomerService {
private ICustomerDao customerDao = null ;
/**
* 默认无参构造函数
* 当此方法一执行,就表示对象已经创建了
*/
public CustomerServiceImpl() {
System.out.println("客户的业务层实现类已经创建了");
}
@Override
public void saveCustomer() {
customerDao.saveCustomer();
}
}
e、spring容器的初始化和资源的获取
package cn.itcast.web;
public class Client {
@SuppressWarnings("all")
public static void main(String[] args) {
// 1.获取到Spring的容器,参数是spring配置文件带后缀的名称
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
//如果配置文件在包中,就按照如下方式写
//ApplicationContext ac = newClassPathXmlApplicationContext("cn/itcast/config/bean.xml");
// 2.根据bean的唯一标识获取对象
ICustomerService customerService = (ICustomerService) ac.getBean("customerService");
System.out.println(customerService);
ICustomerDao customerDao = (ICustomerDao) ac.getBean("customerDao");
System.out.println(customerDao);
customerService.saveCustomer();
}
}
(1)、两个实现类
(2)、BeanFactory和ApplicationContext的区别
BeanFactory