SpringBoot

 

微服务概述

微服务是一种软件开发技术,是面向服务的体系结构(SOA)架构样式的一种变体

它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值

每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)

每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等

另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建

 

微服务特点

 

微服务的优势

 

解耦

微服务和整体架构之间的区别在于,微服务由许多较小的,松散耦合的服务组成一个应用程序,与大型,紧密耦合的应用程序的整体方法相反

 

springboot概述

SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程

另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决

 

SpringBoot框架中还有两个非常重要的策略:开箱即用 约定优于配置

 

开箱即用(Outofbox)

 

约定优于配置(Convention over configuration)

是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式

这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化

 

Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件

 

回顾我们之前的 SSM 项目,搭建过程还是比较繁琐的,而使用 Spring Boot 来开发项目则只需要非常少的几个配置就可以搭建起来一个 Web 项目,并且利用 IDEA 可以自动生成生成

 

springboot装配包原理

@RestController注解

相当于Controller注解加ResponseBody注解

同样可以将实例装载进spring核心容器中

 

application.properties文件

springboot配置文件

修改端口

 

springboot底层封装的是spring

spring可以完成的功能:首先会有核心容器,然后将所有组件交由核心容器管理

 

1、spring中创建核心容器的方式:

基于xml的方式创建核心容器对象

基于核心配置类的方式来创建核心容器对象

 

2、springboot是如何创建核心容器对象?

springboot框架的目的就是简化spring的开发,尽量避免去写配置文件

springboot是基于核心配置类的方式来创建核心容器对象

@Bean 如果用该注解修饰了一个方法,那么该方法的返回值会作为一份实例存进容器中

 

3、springboot自动装配包:

 

 

@SpringBootApplication注解

自动装配包注解,声明当前工程是一个springboot工程,在入口类Application上由idea生成springboot工程时自动生成

 

总结:springboot中的自动装配包跟@SpringBootApplication注解有关:

也是springboot中的约定大于配置:入口类所在的包就是springboot指定的资源包

同包或者子包的资源才能被扫描到!

 

springboot是通过启动类的方式来导入资源,springboot默认会存在一个包叫autoconfiguration,它会存放所有需要被装配类的全类名,通过反射机制创建实例,自动装配到核心容器中

 

springboot整合mybatis

springboot的pom文件中存在一个版本仲裁中心,会帮助我们去管理资源的版本,但是在导入mysql驱动的时候就不能交由springboot管理,需要根据我们自己安装的数据库版本去导入对应驱动

 

1、需要引入相关坐标

 

2、需要在application.properties文件中注册数据源信息

 

将mybatis通过代理模式创建的持久层接口实例通过springboot装配进核心容器中

 

3、在Application类上加@MapperScan注解

mybatis扫描器,类似于spring中的扫描器标签,扫描持久层接口

需要提供持久层接口所在包的全类名

 

4、在application.properties文件中添加映射xml文件所在位置

 

 

springboot视图跳转jsp

由于springboot内置的tomcat不支持jsp所以需要有插件的支持

 

 

配置视图解析器

 

需要导入必要插件坐标

springboot支持jsp

 

以后我们会使用freemark模板,在springboot项目不会使用jsp模板

 

freemarker模板

 

导入maven坐标

 

创建一个freemarker文件

在templates文件下创建一个list.ftl

 

配置视图解析器

 

学习模板引擎的目的就是为了渲染数据,要学习对应的语法

 

freemarker基础语法

参考博客

语法参考1

语法参考2

 

遍历集合

 

springboot整合redis

导入maven坐标

 

redis可以完成对数据的缓存:

先从数据库中把对应的数据查出来,然后将数据存到redis缓存中,下次再查询对应数据的时候就从缓存中取数据,避免多次与数据库进行交互(高并发解决方案之一)

 

将springboot整合redis的模板对象聚合到controller中

 

以后用springboot集成第三方技术的时候,都会有模板对象,比如以后在企业中接触到的中间件rabbitmq,activemq,也需要从容器中获取模板对象