框架

spring框架

spring有两大核心,IOC和AOP,IOC控制反转,AOP面向切面编程

控制反转:就是把一些高频使用的类交给spring管理,由spring创建,不用手动去创建,在项目启动的时候,我们把一些声明的bean和在xml中定义的bean,这些bean会在spring中创建对象,我们会通过DI(依赖注入)的方式,注入到我们需要使用的地方,注入的方式有多种,比如:注解注入,构造器注入,set注入,最常用的是注解注入

面向切面编程:主要有2个关注点,切点和切面,切点就是看controller,service,dao具体配置在哪个地方,比如说我们要在第30行记录日志,那么30行就是切点,切面就是我们所写的业务逻辑,切点对应的逻辑代码中找到我要执行的java代码,这段代码就是切面,就是记录日志,需要具体的代码实现;就拿河边钓鱼来说,我们就需要考虑两个问题,在哪下网,下多大的网,在上游下还是下游下,人多的话就抓不到鱼了,抓大鱼的话,就用大网,抓小鱼的话,就用小网,我们下网的地就相当于切点,网就相当于切面,AOP常用来处理事务和记录日志,过滤器和拦截器中也用到了AOP

AOP实现原理:他的底层是通过动态代理实现的面向切面编程,主要用在管理事务这一块,我们在配置文件中配置切入点,比如以insert/save/update等开头的方法,我们开启事务,配置一个以开头的REQUIRED事务特性,还可以拿用在日志管理

常用注解:

  • @Component
  • @controller
  • @service
  • @Repository
  • @Transactional
  • @value

springBoot框架

springboot是用来简化spring开发,约定大于配置,去繁从简

优点:

  • 配置简单
  • 快速运行
  • 自动装配
  • 无代码生成和xml配置
  • 提供应用监控
  • 易上手
  • 提高开发效率

常用注解:

  • @SpringBootApplication:核心注解
  • @EnableAutoConfiguration:自动配置
  • @Configuration:定义配置
  • @ComponentScan:组件扫描
  • @ResponseBody
  • @RestController
  • @AutoWired
  • @Qualifier:多个同一类型的bean,来区分
  • @RequestParam
  • @RequestMapping
  • @PathVariable:获取参数

springCloud框架

spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。

springboot,springcloud的联系与区别

  • springboot用于单个微服务开发
  • springcloud是关注全局的微服务框架,将springboot的单个微服务进行整合和管理

联系:springboot可以离开springcloud独立开发,springcloud离不了springboot,属于依赖关系

springcloud和dubbo的区别:

  • 服务调用方式:springcloud是rest API,dubbo是RPC
  • 注册中心:dubbo是zookeeper,springcloud可以是eureka,也可以是zookeeper
  • 服务网关:dubbo本身没有,需要与第三方整合,springcloud自带

核心组件:

  • 注册中心:Eureka
  • 熔断器:Hystix
  • 服务调用:fegin
  • 服务网关:Zuul

Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。

使用了一个RouteLocatorBuilder的bean去创建路由,除了创建路由RouteLocatorBuilder可以让你添加各种predicates和filters,predicates断言的意思,顾名思义就是根据具体的请求的规则,由具体的route去处理,filters是各种过滤器,用来对请求做各种判断和修改。

  • 负载均衡:Ribbon
  • 配置中心:config

在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。

使用:

(1)添加pom依赖

(2)配置文件添加相关配置

(3)启动类添加注解@EnableConfigServer

常用注解:

  • @EnableEurekaServer:开启eureka服务
  • @EnableEurekaClient:发布一个服务

  • @EnableDiscoveryClient:也表示发布一个服务(它俩的区别是@EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是其他注册中心)

  • @EnableDiscoveryClient向注册中心上注册服务号

  • @LoadBalanced:开启ribbon负载均衡器

  • @EnableFeignClients:开启feign权限  @FeignClient(name = "app-buba-member")

  • @EnableHystrix开启Hystrix@HystrixCommand(fallbackMethod = "orderToUserInfoFallback")

  • @EnableConfigServer开启config-server   @RefreshScope刷新注解

  • @EnableZuulProxy:开启注册网关

Dubbo框架

1.dubbo是一个分布式服务框架,dubbo的核心就是在项目启动的时候,把接口以服务的形式发布,服务的提供者在注册中心注册服务,服务的消费者去注册中心订阅,注册中心会把服务的路径和地址返回给消费者,消费者拿真实路径去注册中心找

2.dubbo的三种连接方式:有注册中心,无注册中心,广播

3.发布服务:<dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService"/>

4.引用服务:<dubbo:reference interface="com.taotao.service.ItemService" id="itemService" />

springMVC框架

springMVC是一个web层框架,当浏览器发送请求到dispatcherServlet,dispatcherServlet找到对应的handler,handler处理完成后,把数据和页面返回给dispatcherServlet,dispatcherServlet找到对应的viewResolver,viewReslover把数据渲染到页面上,展示给用户看

Struts2框架

struts2是一个web层框架,他的入口是 一个过滤器,他使用值栈存储数据,通过OGML来存取数据,如果返回一个对象还要配置对象的set,get方法,比较麻烦

(springMVC和Struts2的区别)springMVC的入口是一个Servlet,即前端控制器,Struts2的入口是一个过滤器;Struts2使用值栈来存储数据,通过OGNL来存取数据,springMVC通过参数解析器吧request对象进行解析得到参数,然后将响应数据和页面封装成对象,然后又将模型数据通过request对象返回到页面;springMVC有复合类型,可以一次性返回2个对象:Model和view

Mybatis框架

mybatis是一个ORM框架,对JDBC进行了较为完整的封装,对sql语句进行统一存取,我们只需要关注sql语句就行,通过mybatis提供的映射方法,自由灵活的生成sql语句

mybatis中#{}和${}的区别:#是一个占位符,具体使用:#{id},还可以来防止sql注入;$是原样输出的标志,具体使用:${name}

Hibernate框架

hibernate是一个ORM框架,对JDBC进行了较为完整的封装,他是一个开放源代码的对象映射框架,将pojo与数据库表建立关系

(mybatis和hibernate的区别)他们都是比较常用的ORM框架,对JDBC进行了较为完整的封装,区别在于:①.难易程度:mybatis比较简单,hibernate比较难,配置表与表的关联关系比较复杂②.开发工作量:mybatis的工作量多于hibernate,因为hibernate是对对象进行操作的,相对于来说,他的工作量比较小③.数据移植性:mybatis的sql都是自己手写的,移植性较差,hibernate与数据库的关联关系都在xml中配置,他使用的是hql语句,对具体数据库不是很关心,只需要配置对应的方言就行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值