了解IOC和DI:
1、IOC(反转控制):
反转资源获取的方向。传统的资源查找是组件向容器请求查找资源。
IOC则是容器主动将资源推送给它管理的组件,组件所要做的是选择一种合适的方式接受资源。
在完成添加后,对Spring 的配置文件进行一个最简单的Bean的配置.
1.在项目中添加Source Folder文件(个人习惯)
2.新建一个配置文件.以xml结尾,这里命名为application.xml
3.在配置文件里写入头部的配置:
<?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">
</beans>
4.在声明完配置之后,进行简单的编写
(1).首先先声明一个对象,这里命名为:User,并有name,一个String,的属性,并进行set方法
public BookDao bookDao;
public String name;
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
public void setName(String name) {
this.name = name;
}
@Override
public void save() {
System.out.println("BookServiceImpl------Impl save"+"姓名:"+name);
bookDao.add();
}
(2).Spring的基本配置
<?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">
<!--告诉spring框架,创建管理哪些对象
id:给创建出来的对象起一个名字-----标示
Class:要创建对象对应类的全类名-----类的完全限定名
-->
<bean id="bookDao" class="com.gao.dao.Impl.BookDaoimpl"></bean>
</beans>
id:在spring配置里,id和name属性都能定义bean元素的名称
可以使用name属性为bean元素起多个名,之间可以使用空格或者逗号隔开(不推荐)。
在开发中,尽量使用id定义bean元素名称
class:则是该id所对应的类,class里所写的一定是要类的完全限定名
(3) 编写main方法,获取User对象
使用ApplicationContext获取IOC容器,参数所需写的是配置文件的名称
使用ApplicationContext对象的getBean方法取得Bean对象,参数写的是第三步填写的唯一标识id
打印user,即可获取user对象的地址
@Test
public void test01() {
System.out.println("BookService...add");
//对象的创建由spring框架创建,此处只需要直接问IOC容器要
//1,通过ClassPathXmlApplicationContext加载spring.xml获得获得IOC容器
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("Spring.xml");
//2,通过IOC容器中根据名字获得对象
bookService= (BookService) context.getBean("bookService");
bookService.save();
System.out.println("==================");
// bookService=new BookServiceImpl();
// bookService.save();
}
2、DI(依赖注入):
IOC的另一种表述方式,组件以一些预先定义好的方式接受来自容器的资源注入。
Spring中支持三种依赖注入方式:1、属性注入 2、构造器注入 3、工厂方法注入
2.1 属性注入:属性注入即通过Setter方法注入Bean的属性值或依赖的对象。 使用<property>元素
<!--依赖注入-->
<bean id="bookService" class="com.gao.service.impl.BookServiceImpl">
<!--spring的依赖注入:property表示BookServiceImpl的属性,常规属性使用value赋值,
类型属性使用ref引用-->
<property name="bookDao" ref="bookDao"/>
<property name="name" value="张三"/>
</bean>