Spring框架的优点
- Spring是一个开源免费的框架 , 容器 .
- Spring是一个轻量级的框架 , 非侵入式的 .
- 控制反转 IoC , 面向切面 Aop
总的来说Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。
组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
- 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
- Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
基本的实现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进行动态值的注入。