Spring简介-IOC
1、Spring
1.1、简介
Spring:春天----------->给软件行业带来了春天!
2002,首次推出了Spring框架的雏形:interf21框架!
Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日发布了1.0正式版。
Rod Johnson ,Spring Framework创始人,悉尼大学音乐学博士,计算机学位
Spring理念:使现有的技术更加容易使用,本身就是一个大杂烩,整合了现有的技术框架!
SSH: Struct2+Spring +Hibernate!
SSM: SpringMvc+Spring+Mybatis!
官网下载地址:repo.spring.io
GitHub:GitHub - spring-projects/spring-framework: Spring Framework
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
ctrl+shift+o 导入
1.2、优点
Spring使一个开源的免费的框架(容器)!
Spring使一个轻量级的、非入侵式的框架!
控制反转(IOC),面向切面编程(AOP)!
支持事务的处理,对框架整合的支持!
总结一句话:Springjiushi+一个轻量级的控制反转(IOC)和面向切面编程的框架!
1.3、组成
1.4、扩展
在Spring的官网有这个介绍:现代化的java开发!说白就是基于Spring的开发!
- Spring Boot
- 一个快速开发的脚手架
- 基于SpingBoot可以快速的开发单个微服务
- 约定大于配置!
- Spring Cloud
- SpringCloud式基于SpringBoot实现的
因为现在大多数公司都在使用SpringBoot进行快速开发,学习SpringBoot的前提,需要完全掌握Spring以及SpringMVC!承上启下的作用!
弊端:发展了太久之后,违背了原来的理念!配置十分繁琐,人称“ 配置地狱!”
2、IOC理论推导
UserDao接口
package com.jan.dao; public interface UserDao {
void getUser();
}UserDaoImpl实现类
package com.jan.dao; public class UserDaoImpl implements UserDao{ public void getUser() {
System.out.println("默认获取用户的数据!");
}
}UserService 业务接口
package com.jan.dao.service; public interface UserService {
void getUser();
}UserService Impl 业务实现类
package com.jan.dao.service; import com.jan.dao.UserDao;
import com.jan.dao.UserDaoImpl;
import com.jan.dao.UserDaoMysqlImpl;
import com.jan.dao.UserDaoOracleImpl; public class UserServiceImpl implements UserService{ //增加了 UserDaoMysqlImpl 类,就必须来改变 UserServiceImpl 类 里面的源代码,
//如是很多类不得累死?解决的办法?
//private UserDao userDao = new UserDaoImpl();//对象写死了
// private UserDao userDao = new UserDaoMysqlImpl();//对象写死了
// private UserDao userDao = new UserDaoOracleImpl();//对象写死了 private UserDao userDao; //利用set动态实现值的注入!!
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} public void getUser() {
userDao.getUser();
}
}若是有其他新增加的Impl类
package com.jan.dao; public class UserDaoMysqlImpl implements UserDao{
public void getUser() {
System.out.println("Mysql获取用户数据!");
}
}MyTest的实现
import com.jan.dao.UserDaoSqlserverImpl;
import com.jan.dao.service.UserService;
import com.jan.dao.service.UserServiceImpl; public class MyTest {
public static void main(String[] args) { //用户实际调用的是业务层,dao层它们不需要接触!
UserService userService = new UserServiceImpl(); ((UserServiceImpl) userService).setUserDao(new UserDaoSqlserverImpl()); userService.getUser();
}
}
在我们之前的业务中,用户的需求可能会影响我们原来的代码,我们需要根据用户的需求去修改原代码!如果程序代码量十分大,修改一次的成本代价十分昂贵!
我们使用了一个Set接口实现,已经发生了革命性的变化!
private UserDao userDao;
//利用set动态实现值的注入!!
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
之前,程序是主动创建对象!控制权在程序猿手上!
private UserDao userDao = new 8UserDaoMysqlImpl();//对象写死了
使用set注入后,程序不再具有主动性,而是成了被动的接受对象!
这种思想,从本质上解决了问题,我们程序猿不用再去管理对象的创建了。系统的耦合性大大降低了,可以更加专注的在业务的实现上!这是IOC的原型!
Spring简介-IOC的更多相关文章
- Unit01: Spring简介 、 Spring容器 、 Spring IOC
Unit01: Spring简介 . Spring容器 . Spring IOC Spring (1)Spring是什么? Spring是一个开源的用来简化应用开发的框架. (2)Spring的特点? ...
- Spring的ioc(DI)复习概念和原理简介
IOC的好处 ioc或者说di的概念很显然了,反转控制和依赖注入,那本来直接new就行的东西,为什么要搞这么复杂呢?? 开发维护方便,高层设计不用依赖底层的,不然底层一个类改下构造器,高层就全要改,因 ...
- 1、Spring简介及IOC入门案例
一.Spring框架介绍 1.介绍 Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务 ...
- Java Spring的IoC和AOP的知识点速记
Spring简介 Spring解决的最核心的问题就是把对象之间的依赖关系转为用配置文件来管理,这个是通过Spring的依赖注入机制实现的. Spring Bean装配 1. IOC的概念以及在Spri ...
- Spring框架IOC容器和AOP解析
主要分析点: 一.Spring开源框架的简介 二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面向切面编程(AOP)和事务管理配置 一.S ...
- [原创]java WEB学习笔记96:Spring学习---Spring简介及HelloWord
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Spring简介和基础
Spring介绍 1.什么事Spring? spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. spring的设计模式是单例模式和工厂模式. 2.spring的四大优点 轻量 ...
- 【Spring 1】Spring简介
一.Spring简介 首先,Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务器端的开 ...
- Spring 实践 -IoC
Spring 实践 标签: Java与设计模式 Spring简介 Spring是分层的JavaSE/EE Full-Stack轻量级开源框架.以IoC(Inverse of Control 控制反转) ...
- Spring框架入门之Spring简介
一.Spring简介(由Rod Johnson创建的一个开源框架) Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿 ...
随机推荐
- 获取网页数据 Qt 从客户端发起http响应
Qt 从客户端发起http响应 获取网页数据实现代码 void Test::GetHttp(QString strServerIP,QString strUserName,QString strPas ...
- 动态路由里,将component字符串改变为路由懒加载方法
一.import写法 报错 function loadPageByRoutes(str) { // 传入的str为 '@/views/Home.vue' 这种格式 return () => im ...
- mybati之sql集合
mybatis 详解(五)------动态SQL - YSOcean - 博客园 (cnblogs.com) mybatis参数注入: 根据参数名称 使用#{} 注入参数 <insert id= ...
- 配置RMAN(缩减版)
配置备份的默认类型:备份集或副本 要配置默认备份类型: 启动 RMAN 并连接到目标数据库和恢复目录(如果使用). 将备份集或映像副本配置为默认备份类型. 以下示例配置磁盘备份到副本和备份集的备份类型 ...
- B. Going to the Cinema
https://codeforces.com/contest/1782/problem/B 题目大意就是给定n个人,每个人有一个除自己之外的最少陪同人数,选一部分人去电影院,要求去的人人数大于等于去的 ...
- Tomcat 性能监控与调优
Tomcat 性能监控与调优 Tomcat 远程 Debug JDWP bin/startup.sh 修改最后一行(添加 jpda) exec "$PRGDIR"/"$E ...
- C# TreeView查获节点并选中节点
在一个项目中用到了TreeView,但是每次刷新TreeView的数据之后,所有的节点都会折叠起来 非常影响用户体验,使用下面的方法可以解决这个问题 string LastSelectNode = & ...
- 实验一 密码引擎-1-OpenEuler-OpenSSL编译
1. 下载最新的OpenSSL源码 2. 用自己的8位学号建立一个文件夹,cd 你的学号,用pwd获得绝对路径 3. 参考https://www.cnblogs.com/rocedu/p/508762 ...
- JS中Promise
Promise的作用: Promise是异步微任务,解决了异步多层嵌套回调的问题,让代码的可读性更高,更容易维护. Promise如何使用: Promise是ES6提供的一个构造函数,可以使用Prom ...
- UE5农场项目小功能(1)-砍树
砍树功能效果的实现 在UE中想做一个砍树的功能,B站上没找到什么教程,最后在油管上找到个视频并跟着实现了,一共设计到三个蓝图和一个什么也没写的蓝图接口,下面介绍下步骤. 1.角色蓝图的部分 人物这 ...