1-Spring的概念
spring的作用:使现有技术更容易使用,本事是一个大杂烩,整合了现有的技术框架。
SSH:Struct2+Spring+Hibernate!
SSM:SpringMVC+Spring+Mybatis!
4.3.9版下载地址:http://repo.spring.io/release/org/springframework/spring
导入spring-webmvc包
compile group: 'org.springframework', name: 'spring-webmvc', version: '5.2.2.RELEASE'
1.2-Spring的优点
Spring是一个开源的免费的框架(容器)!
Spring是一个轻量级的(可以直接添加依赖)、非入侵式的框架(不会影响原来的代码)!
控制反转(IOC)、面向切面编程(AOP)!
支持事务处理,对框架整合的支持!
总结一句话:Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架!
1.3-Spring组成
1.4-Spring拓展
Spring Boot
1.一个快速开发的脚手架。
2.基于Spring Boot可以快速开发单个微服务。
3.约定大于配置。
Spring Cloud
1.Spring Cloud是基于Spring Boot实现的。
2-IOC理论推导
UserDao接口
package com.kuang.dao;
public interface UserDao {
void getUser();
}
UserDaoMysqllmpl实现类
package com.kuang.dao;
public class UserDaoMysqllmpl implements UserDao{
@Override
public void getUser() {
System.out.println("Mysql获取了用户数据");
}
}
UserDaolmpl实现类
package com.kuang.dao;
public class UserDaolmpl implements UserDao{
@Override
public void getUser() {
System.out.println("默认获取用户数据");
}
}
UserService业务接口
package com.kuang.Service;
public interface UserService {
void getUser();
}
UserServicelmpl业务实现类
package com.kuang.Service;
import com.kuang.dao.UserDao;
import com.kuang.dao.UserDaoMysqllmpl;
import com.kuang.dao.UserDaolmpl;
public class UserServicelmpl implements UserService{
private UserDao UserDaolmpl=new UserDaolmpl();//
// //如果要掉UserDaoMysqllmpl的实现就要改动
// private UserDao UserDaolmpl=new UserDaoMysqllmpl();
// //也可以利用set方法可以动态实现值得注入
// public void setUserDao(UserDao userDao){
// this.UserDaolmpl = userDao;
// }
@Override
public void getUser() {
UserDaolmpl.getUser();
}
}
Test
import com.kuang.Service.UserService;
import com.kuang.Service.UserServicelmpl;
import com.kuang.dao.UserDaoMysqllmpl;
public class test {
public static void main(String[] arsg){
//用户实际掉的是Services层,不接触Dao层
UserService userService =new UserServicelmpl();
UserService userService1 ;
userService.getUser();
//动态实现值得注入
((UserServicelmpl) userService1).setUserDao(new UserDaoMysqllmpl());
userService.getUser();
}
}