没有合适的资源?快使用搜索试试~ 我知道了~
首页【狂神说】spring PDF学习总结笔记 Spring5.pdf
资源详情
资源评论
资源推荐

Spring5
1.、Spring
spring是一个思想的学习,有两大思想。
1. IOC
2. AOP
1.1、简介
Spring ——> 春天,为开源软件带来了春天
2002,首次推出了Spring框架的雏形:interface21框架!
Spring框架以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日
发布了1.0正式版
Rod Johnson ,Spring Framework创始人,著名作者。很难想象Rod Johnson的学历,真的
让好多人大吃一惊,他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。
目的:解决企业应用开发的复杂性
Spring的理念:使用现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架!
SSH:Struct2 + Spring + Hibernate(全自动持久化框架)!
SSM:SpringMVC + Spring + MyBatis(半自动持久化框架,可自定义性质更强)!
spring官网: https://spring.io/projects/spring-framework#overview
官方下载: https://repo.spring.io/release/org/springframework/spring/
GitHub: https://github.com/spring-projects/spring-framework
Spring Web MVC: spring-webmvc最新版
Spring Web MVC和Spring-JDBC的pom配置文件:

1.2、优点
Spring是一个开源的免费的框架(容器)!
Spring是一个轻量级的、非入侵式的框架!
特性:控制反转(IoC),面向切面编程(AOP)
支持事务的处理,对框架整合的支持!(几乎市面上所有热门框架都能整合进去)!
总结一句话:Spring就是一个轻量级的控制反转(IoC)和面向切面编程(AOP)的框架!
1.3、组成
Spring7大模块
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --
>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.7.RELEASE</version>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13

1.4、扩展
Spring官网介绍 :现代化的java开发 -> 基于Spring的开发!
Spring Boot
一个快速开发的脚手架
脚手架:和框架一样
基于SpringBoot可以快速开发单个微服务
约定大于配置!
Spring Cloud
SpringCloud是基于SpringBoot实现的!
因为现在大多数公司都在使用SpringBoot进行快速开发,学习SpringBoot的前提,需要完全掌握
Spring及SpringMVC!承上启下的作用!
弊端:
发展了太久之后,违背了原来的理念!配置十分繁琐,人称:“配置地狱!“
2、IoC(控制反转)理论推导 【重点】
IOC是一种编程思想,由主动的编程变成被动的接收.
什么是IOC?
提供一个set接口
传统的调用
1. UserDao
2. UserDaoImp
package dao;
public interface UserDao {
void getUser();
}
1
2
3
4

3. UserSevice
4. UserServiceImp
作用:调dao层
5. 测试
在我们之前的业务中,用户的需求可能会影响我们原来的代码,我们需要根据用户的需求去修改原
代码!如果程序代码量十分大,修改一次的成本代价十分昂贵!
package dao;
public class UserDaoImpl implements UserDao{
public void getUser() {
System.out.println("默认获取用户数据");
}
}
1
2
3
4
5
6
package Service;
public interface UserService {
void getUser();
}
1
2
3
4
package Service;
import dao.UserDao;
import dao.UserDaoImpl;
public class UserServiceImpl implements UserService{
UserDao userDao = new UserDaoImpl();
public void getUser(){
userDao.getUser();
}
}
1
2
3
4
5
6
7
8
9
10
package holle0;
import Service.UserService;
import Service.UserServiceImpl;
public class MyTest0 {
public static void main(String[] args) {
// 用户实际调用的是业务层,dao层他们不需要接触
UserService userService = new UserServiceImpl();
userService.getUser();
}
}
====
默认获取用户数据
1
2
3
4
5
6
7
8
9
10
11
12
13

改良后:
我们使用一个Set接口实现。已经发生了革命性的变化!
set()方法实际上是动态改变了 UserDao userDao 的 初始化部分(new UserDaoImpl())
测试中加上
之前,程序是主动创建对象!控制权在程序猿手上!
使用了set注入后,程序不再具有主动性,而是变成了被动的接受对象!(主动权在客户手
上)
思想:
本质上解决了问题,程序员不用再去管理对象的创建
系统的耦合性大大降低,可以更专注在业务的实现上
这是IoC(控制反转)的原型,反转(理解):主动权交给了用户
//在Service层的实现类(UserServiceImpl)增加一个Set()方法
//利用set动态实现值的注入!
//DAO层并不写死固定调用哪一个UserDao的实现类
//而是通过Service层调用方法设置实现类!
private UserDao userDao;
public void setUserDao(UserDao userDao){
this.userDao = userDao;
}
1
2
3
4
5
6
7
8
userService.setUserDao(new UserDaoImpl());1
剩余90页未读,继续阅读














小尹^_^
- 粉丝: 107
- 资源: 4
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0