总的来说Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。
组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
基本的实现IOC控制反转:我们利用set进行动态值的注入
首先我们创建一个Maven项目:
第一步:在dao层创建一个dao接口
public interface UserDao { public void getUser(); }
第二步:创建dao接口的实现类
public class UserDaoImpl implements UserDao { public void getUser() { System.out.println("默认获取用户的数据"); } }
第三步:在service层创建service接口
public interface UserService { public void getUser(); }
第四步:创建service接口的实现类
public class UserServiceImpl implements UserService{ //要想实现dao层的东西 private UserDao userDao; /** * 利用set进行动态值的注入 * @param userDao */ public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void getUser() { userDao.getUser(); } }
第五步:测试类
public class MyTest { public static void main(String[] args) { //用户实际调用的是业务层Service,dao层他们不需要接触 UserServiceImpl userService = new UserServiceImpl(); userService.setUserDao(new UserDaoImpl()); userService.getUser(); } }
这个例子可以知道,当我们service层调用dao层的方法的时候。用我们以前的方法,把dao层的实现类new到service实现类里面,进而调用dao层的方法,现在我们用set进行动态值的注入。