2026/1/28 6:59:24
网站建设
项目流程
外贸网站支付接口,建设四川网站,wordpress变数据库,做网站前产品经理要了解什么Spring
简介Spring#xff1a;春天-----给软件行业带来了春天2002#xff0c;首次推出了Spring框架的雏形#xff1a;interfac21框架#xff0c;经过设计#xff0c;并不断丰富其内涵#xff0c;于2004年3月24日#xff0c;发布了1.0正式版Rod Johnson#xff0c;S…Spring简介Spring春天-----给软件行业带来了春天2002首次推出了Spring框架的雏形interfac21框架经过设计并不断丰富其内涵于2004年3月24日发布了1.0正式版Rod JohnsonSpring Framework创始人著名作者。很难想象RodJohnson的学历真的让好多人大吃惊他是悉尼大学的博士然而他的专业不是计算机而是音乐学。spring理念使用现有的技术更加容易使用本身就是一个大杂烩整合了现有的技术框架 SSHStruct2 Spring HibernateSSM SpringMVC Spring Mybatis官网页面https://spring.io官方文档https://docs.spring.io/spring-framework/docs/5.2.0.RELEASE/spring-framework-reference/官方下载地址https://github.com/spring-projects/spring-framework/releases/tag/v5.2.0.RELEASESpring所需要的Maven依赖!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.2.0.RELEASE/version/dependency!--这里后续整合JDBC再导入依赖即可--!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --dependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.2.0.RELEASE/version/dependency优点Spring 是一个开源的免费框架容器Spring是一个轻量级的、非入侵式不会影响原来的项目的框架控制反转IOC面向切面编程AOP“重点”支持事务的处理支持事务的处理对框架整合的支持几乎市面上所有的框架它都可以整合进去总结一句话Spring就是一个轻量级的控制反转IOC和面向切面编程的框架组合Spring框架中有7大模块三大核心思想DI依赖注入IOC控制反转AOP面向切面编程扩展在Spring的官网有这个介绍现代化的Java开发说白了就是基于Spring的开发Spring Boot一个快速开发的脚手架基于SpringBoot可以快速开发单个微服务约定大于配置Spring Cloud是基于SpringBoot是实现的因为现在大多数公司都在使用SpringBoot进行快速开发学习SpringBoot的前提需要完全掌握Spring以及SpringMVC承上启下的作用弊端发展了太久之后违背了原来的理念配置十分繁琐人称“配置炼狱”IOC理论推导传统开发宅之前的业务中我们因为客户的每一次需求而去手动改原有的代码**“这是有问题的”如果代码是成千上万的不可能手动去改代价十分昂贵**UserDao接口publicinterfaceUserDao{voidgetUser();}UserDaoImpl实现类publicclassUserDaoImplimplementsUserDao{OverridepublicvoidgetUser(){System.out.printf(获取用户Dao层);}}UserService业务接口publicinterfaceUserService{voidgetUser();}UserServiceImpl 业务实现类publicclassUserServiceImplimplementsUserService{// 写死了主动在程序员手上privateUserDaouserdaonewUserDaoMysqlImpl();// 业务层就做一个事情调用dao层OverridepublicvoidgetUser(){userdao.getUser();}}测试方法publicclassTest{org.junit.Testpublicvoidtest(){// 用户实际调用的是业务层dao层他们不需要接触UserServiceImpluserServicenewnewUserDaoMysqlImpl();userService.getUser();}}革命变化我们使用一个Set接口实现已经发生了革命性的变化publicclassUserServiceImplimplementsUserService{// 面向接口编程被动接受对象privateUserDaouserdao;// 利用set进行动态实现值的注入publicvoidsetUserdao(UserDaouserdao){this.userdaouserdao;}// 业务层就做一个事情调用dao层OverridepublicvoidgetUser(){userdao.getUser();}}测试方法可以发现不需要修改代码只需要在用户层添加代码就可以了publicclassTest{org.junit.Testpublicvoidtest(){// 用户实际调用的是业务层dao层他们不需要接触UserServiceImpluserServicenewUserServiceImpl();// userService.setUserdao(new UserDaoMysqlImpl());userService.setUserdao(newUserDaoImpl());userService.getUser();}}满足以下原则开闭原则对扩展开放对修改关闭依赖倒置原则面向接口编程、而不是实现编程迪米特法则只与你的直接朋友交谈不跟”陌生人“说话之前程序是主动创建对象控制权在程序手上使用了set注入后程序不再具有主动性而是变成了被动的接收对象这种思想从本质上解决了问题我们程序员不用再去管理对象的创建了系统耦合性大大降低~可以更加专注的在业务上的实现这是IOC的原型IOC的本质控制反转IoCInversion Of Control是一种设计思想DI依赖注入是实现IoC的一种方法也有人认为DI只是IoC的另一种说法。没有IoC的程序中我们使用面向对象编程对象的创建与对象间的依赖关系完全应变在在程序中对象的创建由程序自己控制控制反转后将对象的创建转移给第三方个人认为所谓控制反转就是获得依赖对象的方式反转了。采用XML方式配置Bean的时候Bean的定义信息是和实现分离的而采用直接的方式可以把两者合为一体Bean的定义信息直接以注解的形式定义在实现类中从而达到了零配置的目的。控制反转是一种通过描述XML或注释并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IoC容器其实现方法是依赖注入Dependency InjectionDI