当前位置: 首页 > news >正文

Spring学习1

一、Spring简介

  • Spring翻译过来就是春天的意思,其实也就是给软件行业带来了春天
  • 2002年,首次推出Spring框架的雏形,interface21框架
  • Spring框架就是以interface21框架为基础,经过重新设计,并不断丰富,在2004年3月24日发布1.0版本的Spring框架
  • Spring理念:是现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架

二、导包

        <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.23</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.9</version></dependency>

三、Spring优点

  • Spring是一个开源的、免费的框架
  • Spring是一个轻量级、非入侵式的框架
  • 控制反转(IOC)、面向切面编程(AOP)
  • 支持事务的处理、对框架整合的支持

四、IOC理论推导

        1.UserDao接口

public interface UserDao {void getUser();
}

        2.UserDaoImpl实现类

public class UserDaoImpl implements UserDao {public void getUser() {System.out.println("获取用户信息");}
}

        3.UserService业务接口

public interface UserService {void getUser();
}

        4.UserServiceImpl业务实现类

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

在上面的代码中,如果需求发生改变,我们就会去修改原来的代码,这是很难的,在代码量十分大的时候,代价也十分高!

        5.优化上面代码 ,使用一个Set接口实现

    private UserDao userDao;//利用Set实现动态注入public void setUserDao(UserDao userDao) {this.userDao = userDao;}

         6.两处代码的变化

  • 前面的代码,程序是主动创建对象,控制权在程序员
  • 使用了set注入后,程序不在具有主动性,而是变为了被动的接收对象

小总结:此思想,从本质上解决了问题,程序员不在去管理对象的创建了,系统的耦合性大大降低,程序员可以更加专注的在业务上的实现了! 其实这就是IOC的原型!

五、总结

Spring就是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架!

http://www.lryc.cn/news/56320.html

相关文章:

  • Keep再闯IPO,三年亏损16亿,会员留存率跌破70%
  • 软件测试分类详解
  • 网站怎么优化出排名
  • h5|web页面嵌套iframe传参给cocosCreator
  • 阿里云安全产品Web应用防火墙是什么?有什么作用?
  • 【SSM】Spring6(九.代理模式)
  • 【1017. 负二进制转换】
  • C语言实现插入排序与希尔排序
  • 第九章-DOM与CSS
  • 蓝桥杯真题练习
  • 插入排序的简单理解
  • Springboot框架集成Websocket通信方式
  • 将json数据分组
  • 从零开始实现一个C++高性能服务器框架----Socket模块
  • ld: library not found for -lcrt0.o
  • 接口测试和功能测试的区别有哪些?说一些你不知道的知识
  • 深度学习实战——不同方式的模型部署(CNN、Yolo)
  • 【论文阅读】GNN阅读笔记
  • QT常用控件——QTreeWidget(树控件),QTableWidget控件
  • 为什么学校购买小型数控机床而不是大型工业数控机床?
  • 【Go自学】一文搞懂Go append方法
  • 【压测】通过Jemeter进行压力测试(超详细)
  • C# | 上位机开发新手指南(七)加密算法
  • 实验一 跨VLAN访问
  • 通信算法之130:软件无线电-接收机架构
  • C++编程大师之路:从入门到精通-C++基础入门
  • 如何在千万级数据中查询 10W 的数据并排序
  • RocketMQ消息文件过期原理
  • Docker容器理解
  • SpringBoot 整合knife4j