概念
IoC:指将对象的创建权,交给到Spring容器;
DI :指Spring创建对象的过程中,将对象依赖的属性通过配置的方式自动的设值给当前的对象 。
IoC/DI注解详解
完成IoC/DI,有两种方式,一种是使用xml配置文件,另一种是使用注解,我们先来介绍xml方式。
XML配置
在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">
<!--把所有对象创建到spring的IOC容器中,并起上名字
id:表示给对象起名字
class:类的全类名
-->
<bean id="bookDao" class="com.zy.dao.impl.BookDaoImpl"></bean>
<bean id="bookService" class="com.zy.service.impl.BookServiceImpl"></bean>
</beans>
使用setter注入(推荐)
Setter注入:最常用的注入方法,需要在xml配置文件中进行手动的配置.
要求:对象中的每个属性必须要有setter 方法
如何配置:
需要为对象中的每个属性配置一个”property”标签:
其中name属性的值为对象中属性的名字.如何给属性注入值时,需要先确定该属性的类型
对象中的属性分为以下三种类型,不同的类型使用不同的注入方式
1):简单数据类型(八大基本类型,String,BigDecimal,Date等). 使用value.
2):引用数据类型. 使用ref.
3):集合数据类型. 使用集合的元素.
IOC使用
创建dao包,接口,类
package com.yi.dao;
public interface BookDao {
public void insert();
}
package com.yi.dao.impl;
import com.yi.dao.BookDao;
public class BookDaoImpl implements BookDao {
@Override
public void insert() {
}
}
创建service包,接口,类
package com.yi.service;
public interface BookService {
void save();
}
package com.yi.service.impl;
public class BookServiceVip {
}
package com.yi.service.impl;
import com.yi.dao.BookDao;
import com.yi.service.BookService;
public class BooksServiceImpl implements BookService {
private BookDao bookDao;
public String name;
private int age;
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
@Override
public void save() {
System.out.println("BookServiceImpl....add"+name+age);
bookDao.insert();
}
}
创建servlet包,接口,类,测试类
package com.yi.servlet;
import com.yi.service.BookService;
import org.junit.Test;
public class BookServlet {
BookService bookService;
@Test
public void add(){
System.out.println("BookService。。。。。。。。。。。。add");
}
}
package com.yi.test;
import com.yi.service.BookService;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test01 {
BookService bookService;
@Test
public void add(){
System.out.println("BookServlet.........add啊啊啊");
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("spring.xml");
bookService= (BookService) context.getBean("bookService");
bookService.save();
}
}
版权声明:本文为weixin_73646899原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。