1,什么是IOC:
IOC是Inversion of Control的缩写,即“控制反转”,是一种设计思想,也是Spring框架的核心。在Java开发中,对象的创建和对象之间的调用关系是通过程序代码实现的,对象的创建和对象之间的调用过程由程序员来管理。而使用Spring框架后,对象的创建和对象之间的调用关系则由Spring容器来管理。这种将对象的创建和对象之间的调用过程交给Spring容器来管理的方式,就是控制反转。
IOC的主要解释:
IOC:控制反转,以前依赖的对象自己直接new,现在不需要new,框架会自动注入对象,创建对 象的权利转移给了框架; spring框架负责所有对象的创建、管理和依赖注入;所有的对象存储的容器叫做IOC容器;
IOC有什么作用:
在Spring中,IOC的主要作用是解耦。传统的Java开发中,对象之间的依赖关系是在代码中硬编码的,这样会导致代码的耦合度很高,一旦某个类发生了变化,就需要修改与之相关的所有代码。而使用IOC后,对象之间的依赖关系由Spring容器来管理,对象之间的耦合度降低了,代码的可维护性和可扩展性都得到了提高。此外,IOC还可以实现AOP(面向切面编程),可以在不修改原有代码的情况下,为程序添加新的功能
在Spring中的ID是什么意思:
DI:依赖注入,一个BookService类的功能需要依赖另外一个BookDao类配合,同时需要赋上一 个具体的对象,则成这种关系是依赖注入;
代码展示:
具体项目文件
(1)创建项目导入spring的jar包注意这个jar包要在项目包中创建不用弄错了
(2)根据目录中自己创建的结构创建接口及其实现类,做好准备工作
dao层接口代码:
package com.li.dao;
public interface BookDao {
void insert();
}
dao层实现类代码:
package com.li.dao.Imp;
import com.li.dao.BookDao;
public class BooksDaoImp implements BookDao {
@Override
public void insert() {
System.out.println("BooksDaoImp......save");
}
}
service层接口代码:
package com.li.service;
public interface BooksService {
void save();
}
service层实现类代码:
package com.li.service.Imp;
import com.li.dao.BookDao;
import com.li.service.BooksService;
public class BooksServiceImp implements BooksService {
private BookDao bookDao;
private String name;
public void setName(String name) {
this.name = name;
}
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
@Override
public void save() {
System.out.println("BooksServiceImp...save"+name);
bookDao.insert();
}
}
测试类代码:
package com.li.Test;
import com.li.service.BooksService;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test001 {
BooksService booksService;
@Test
public void add(){
System.out.println("Test001....add");
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("spring.xml");
booksService = (BooksService) context.getBean("bookService");
booksService.save();
}
}