1.spring是一个开源免费框架(容器)
2.spring是一个轻量级,非入侵式的框架
3.spring的特点:控制反转(IOC),面向切面(AOP)
4.支持事务的处理,对框架整合的支持
总结:spring就是一个轻量级,的控制反转和面向切面的框架!
测试接口:
package top.lostyou.service;
public interface UserService {
void getUser();
}
实现类:
package top.lostyou.service;
import top.lostyou.dao.UserMysqlImp;
import top.lostyou.dao.UserOracleImp;
import top.lostyou.dao.Userdao;
import top.lostyou.dao.UserdaoImp;
public class UserServiceImp implements UserService {
private Userdao userdao;
//利用set方法实现值的动态注入
public void setUserdao(Userdao userdao) {
this.userdao = userdao;
}
public void getUser() {
userdao.getUser();
}
}
没有引入set方法,创建对象的权力在程序猿的手上,对于程序员来说十分的繁琐
当set方法引入以后,创建对象的权力就在用户手上,用户可以根据不同的选择来确定不同的接口
总结:使用set注入以后,程序不在具有主动性,而是变成被动的接受对象,程序猿就可以不用去管理对象的创建了
测试结果:
import top.lostyou.dao.UserMysqlImp;
import top.lostyou.service.UserService;
import top.lostyou.service.UserServiceImp;
public class Mytest {
public static void main(String[] args) {
//用户实际调用的是业务层,dao层它们不需要接触!
UserService userService = new UserServiceImp();
((UserServiceImp)userService).setUserdao(new UserMysqlImp());
userService.getUser();
}
}
控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法。