spring

150 阅读1分钟

什么是Spring(Spring官网)

  1. Spring是一个开源框架
  2. Spring是IOC(控制反转)和AOP(面向切面编程)的容器框架
  3. Spring模块

tspring模块.png Test:Spring的单元测试模块 Core Container:核心容器模块 AOP+Aspects:面向切面编程模块 Instrumentation:提供了class instrumentation支持和类加载器的实现 Data Access Integration:数据的获取/整合模块,包含JDBC等等。 Web:提供面向Web整合特性

1、IOC(Inversion of Control):控制反转

通过代码理解什么是IOC,为什么要使用IOC 创建一个普通的JAVA项目 UserDao.java

  public interface userDao{
    public void getUser();
}

编写实现类 UserDaoImpl.java

import com.jiayang.dao.UserDao;
public class UserDaoImpl implements userDao{
    @Override
    public void getUser(){
        System.out.println("获取用户数据");
    }
}

UserService.java

public interface UserService{
    public void getUser();
}

UserServiceImpl.java


import com.jiayang.dao.UserDao;
import com.jiayang.dao.Impl.UserDaoImpl;
import com.jiayang.service.UserService;

public class UserServiceImpl implements UserService{
    private UserDao userDao = new UserDaoImpl();
        @Override
        public void getUser(){
            userDao.getUser();
        }
}

SpringDemoTest.java

    import com.jiayang.service.UserService;
    import com.jiayang.service.impl.UserServiceImpl;
        public class SpringDemoTest{
            public static void main(String[]args){
               ** UserService service =new UserServiceImpl();**
                    service.getUser();
            }
        }

在前面的代码中,我们所有的对象都是通过new出来的。如果我要增加一个UserDao的实现类那么我的service层同样需要更改。对于一个简单的项目还体现不出来。如果一个大项目,有几百个实现类需要更改那将是费时费力的一件事。