spring初识

spring初识

官网:https://spring.io

framework(框架)

​ 通过一系列的类和接口,提供特定的功能,使用框架我们可以更简单的完成某个领域特定的工作。java三层架构,表示层、业务逻辑层,数据访问层。spring属于表示层和业务逻辑层框架,Mybatis属于数据访问层框架。框架可以使我们集中精力域业务逻辑的开发,而不用关心技术的具体实现,比如使用Mybatis框架之后,我们就不用使用jdbc去连接数据库了。

架构发展历史

引用自dubbo背景介绍界面。

随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。

image

单一应用架构

当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。

垂直应用架构

当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。

分布式服务架构

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。

流动计算架构

当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。

spring介绍

spring中文文档:https://github.com/DocsHome/spring-docs/blob/master/pages/core/overview.md

​ Spring是一个轻量级Java开发框架,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持(就是可以很方便的集成其他框架)。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。
​ Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。
​ Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入(dependencyinjection,DI)和面向切面编程(aspect-oriented programming,AOP)。

简略核心解释

spring是一个轻量级的开源框架。
spring为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题
spring是一个IOC和AOP的容器框架。
IOC:控制反转
AOP:面向切面编程
容器:包含并管理应用对象的生命周期

使用spring的优点

​ 1、Spring通过DI、AOP和消除样板式代码来简化企业级Java开发
​ 2、Spring框架之外还存在一个构建在核心框架之上的庞大生态圈,它将Spring扩展到不同的领域,如Web服务REST、移动开发以及NoSQL
​ 3、低侵入式设计,代码的污染极低
​ 4、独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺
​ 5、Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦
​ 6、Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式处理,从而提供了更好的复用
​ 7、Spring的ORM和DAO提供了与第三方持久层框架的的良好整合,并简化了底层的数据库访问
​ 8、Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部
9、任何一个语言或者任何一个框架想要立于不败之地,那么很重要的就是它的生态。

IOC(Inversion of Control)

​ 博文:https://blog.csdn.net/ivan820819/article/details/79744797

​ 比如对象A要使用对象B,正常情况下是在对象A中直接new一个对象B,对象B的创建销毁由对象A直接控制,这是一种直接的使用方式。引入IOC之后,对象由第三方容器创建,对象B的控制权由对象A交给了第三方容器,对象A在使用对象B时由第三方容器在程序运行时动态的将某种依赖关系注入到对象A中,此时对象A可以通关第三方容器间接的使用对象B。IOC实现了对象A和对象B之间的解耦合。

​ 优点:避免了因为对象之间耦合度高,出现牵一发而动全身的情况,方便后期系统维护。解耦之后代码的可维护性,灵活性更高。对象的复用,对象A和对象B同时使用到了对象C,从容器中获取,无需创建两个对象C。

​ 缺点:对象之间的调用不太直观,需要项目成员对IOC概念有一定了解。 IOC是通过反射实现的,会造成运行效率的损耗。对于小项目,IOC框架的引入需要大量的配置,可能会加大工作成本。

  1. 接口分离原则ISP(the Interface Segregation Principle ISP)
    模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来不要将鼠标(具体实现)直接焊在主板上,使用插口(抽象)连接;现在接口有了,但是无法热插拔。 每次鼠标坏了需要关掉电脑才能更换(实现类换了还是需要去变更代码)

UserDao dao=new UserDaoImpl();

  1. 依赖倒置原则DIP(the Dependency InversionPrinciple DIP)
    具体实现依赖抽象。
    IUserDao dao=从ioc种获取 涉及到的代码变更极少。
IOC实现
低级:导入jar包,配置xml文件

导入jar包

jar包下载地址:https://repo.spring.io/list/libs-snapshot-local/org/springframework/spring/

spring-context

spring-beans

spring-core

spring-expression

引入xmL

​```xml

<?xml version="1.0" encoding="UTF-8"?>

<bean class="com.blog.dao.impl.UserOrcaleImpl" id="userOracleImpl"></bean>

<bean class="com.blog.service.impl.UserServiceImpl" id="userService">
    <property name="userDao" ref="userOracleImpl"></property>
</bean>
```

部分代码

        ClassPathXmlApplicationContext ioc = new ClassPathXmlApplicationContext("springBean.xml");
        UserServiceImpl userService = ioc.getBean(UserServiceImpl.class);
        userService.getUser();

下一篇

IOC
AOP
声明式事务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
辽B代驾管理系统对代驾订单管理、用户咨询管理、代驾订单评价管理、代驾订单投诉管理、字典管理、论坛管理、公告管理、新闻信息管理、司机管理、用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行辽B代驾管理系统程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。辽B代驾管理系统的开发让用户查看代驾订单信息变得容易,让管理员高效管理代驾订单信息。 辽B代驾管理系统具有管理员角色,用户角色,这几个操作权限。 辽B代驾管理系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理代驾订单信息,管理公告信息等内容。 辽B代驾管理系统针对用户设置的功能有:查看并修改个人信息,查看代驾订单信息,查看公告信息等内容。 辽B代驾管理系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理代驾订单信息,管理公告信息等内容。 辽B代驾管理系统针对用户设置的功能有:查看并修改个人信息,查看代驾订单信息,查看公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看代驾订单,删除代驾订单操作,新增代驾订单操作,修改代驾订单操作。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。新闻管理页面,此页面提供给管理员的功能有:新增新闻,修改新闻,删除新闻。新闻类型管理页面,此页面提供给管理员的功能有:新增新闻类型,修改新闻类型,删除新闻类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值