Spring boot基础

一、springboot基本介绍

1、是什么
    spring:IOC、AOP(优点:简化开发;缺点:配置多)
    springboot:约定大于配置(减少繁重的配置,)
    
2、特性
    快速搭建、减少配置、开箱即用、内嵌Tomcat容器、starter自动依赖和版本控制、方便监控(使用spring boot actuator组件提供应用的系统监控,查看应用配置详细信息)

3、微服务
    架构思想,架构风格,单体的应用拆分为多个微小服务组合,通过http通信
    单体架构:all in one,所有服务封装在一个应用中,构建到一个war包中(优点:易于开发测试,部署简单,扩展方便;缺点:项目臃肿,资源无法隔离,无法灵活拓展,耦合性高)
    微服务架构:根据业务拆分为多个应用,拓展方便,减少冗余

二、springboot快速入门

1、开发环境
    jdk、maven、idea
2、传统框架开发web项目、springboot开发web项目
    开发更加快速,关注于业务开发,不在需要手写许多的配置,默认自动配置
3、springboot项目结构
    pom:spring-boot-starter-parent、spring-boot-maven-plugin

三、springboot原理分析

启动类核心:
SpringbootApplication注解:(Springboot启动类注解)
    SpringbootConfiguration注解(标明是Springboot的配置类)
        Configuration注解(标明是配置类)
            Component注解(注入bean,交给spring)
    EnableAutoConfiguration注解(开启自动配置)
        AutoConfigurationPackage注解(自动配置包)
            Import注解(默认扫描启动类所在目录(包)下所有类到spring容器中进行管理)
        Import注解(自动配置导入选择器,根据项目判断需要哪些配置信息然后把默认的配置内容导入到spring容器中进行管理)
    ComponentScan注解(组件扫描和自动装配,用来指定扫描容器的范围)

四、springboot配置说明

1、springboot中的配置文件
    properties配置文件、yml配置文件
    application.properties、application.yml,默认调用properties配置文件,若同时存在,properties优先级大于yml
    文件存放在src/main/resource目录,或者类路径/config目录下,默认读取application开头的配置文件

2、yml语法
    标记语言,更易阅读,以数据为中心,相比json、xml更适合做配置文件
    yml基本语法:
        key: value(value前面要有空格,可以有多个,不能用tab代替)
        大小写敏感
        字符串默认不需要使用引号。单引号不能识别转移字符,原样读取输出;双引号识别转义字符。比如"abc \n cde"实际输出会换行,而'abc \n cde'不会换行
        #注释
    yml支持的三种数据类型:
        字面量:直接量,单个不能拆分的值(数字、字符串、布尔)(key :value)
        对象:键值对形式
        数组:字面量/对象的集合。如 数组:(key: [a,b,c]),list:(key: [{key1: value1,key2: value2},{key1: value1,key2: value2}])   

3、properties和yml的读取
    1> 定义配置实体类,添加注解@Component,@ConfigurationProperties(prefix = "前缀")
    2> value注入:
        ${字面量},${数字、字符串、布尔}
        ${配置文件中的key},如:@value("${timeout}")
        #{SpEL表达式},如:@value("#{timeout}")、@value("#{11*2}")
     3> 自定义配置文件test.properties
        定义配置实体类,添加注解@Component,@ConfigurationProperties(prefix = "前缀"),@PropertySource("classpath:test.properties"):指定配置文件及路径
properties配置中文乱码时,需在idea中进行文件编码配置

五、springboot web开发

1、thymeleaf
    spring.thymeleaf.cache=false(设置页面缓存无效,修改页面立即生效,避免修改后打开还是缓存的页面)
    spring-boot-starter-thymeleaf依赖
    参见:https://blog.youkuaiyun.com/wangww3/article/details/106966514
2、springboot设置欢迎页面
    动态页面:自定义MVC配置类,@Configuration注解,实现WebMvcConfigurer,重写addViewController方法进行映射关系配置:registry.addViewController("/").setViewName("login.html");将路径"/"映射到login.html页面
3、springboot接口开发
    给前端传值:接口添加入参ModelMap modelMap;modelMap.addAttribute(name,value);
    自定义拦截器:实现HandlerInterceptor的preHandle方法,可通过操作会话拦截;自定义MVC配置添加拦截器:registry.addInterceptor(自定义拦截器),设置拦截的请求路径,或排除拦截的请求路径

六、Restful的介绍及使用

1、Restful介绍
    URI:包含URL、URN(URI:统一资源标识符,URL:统一资源定位符,URN:统一资源名称)
    REST产生:前端与后端通信的统一机制,制定统一的接口访问方式,以应对各种不同的前端来访问
    REST概念:表述性状态转移,是一种架构风格
    RESR原则:1、网络上所有事物可被抽象为资源 2、每个资源都有唯一的资源标识符URI 3、同一个资源具有多种表现形式(xml、json等) 4、对资源的操作不会改变资源标识符 5、所有操作都是无状态的
    RESTful:遵守了rest原则的web服务,rest式的web服务是一种ROA(面向资源的架构),restful架构的一个核心概念是“资源”
    http请求:get:查找/获取,post:新增/创建,put:替换,patch:修改,delete:删除。
    不同请求方式表明资源的不同操作类型,传统的接口url通过不同的path代表不同接口资源操作,restful中定义不同的资源操作,甚至不用修改接口path,只需要表明不同的http请求方式
2、Restful在Springboot中的应用
    通过以下五种不同注解支持前端请求,表述资源操作类型:
    @GetMapping,处理get查询请求
    @PostMapping,处理post新增请求
    @PutMapping,用于替换/更新资源
    @PatchMapping,用于更新部分资源
    @DeleteMapping,处理删除请求
    结合spring注解来传递前端数据:
    @PathVariable,用于接受url路径上的参数
    @ModelAttribute,用于直接接受url?后面的参数,如url?id=123&name=456,然后直接转为pojo
    
3、Spring Data REST 的使用
    浏览器postman插件
    post、put可用于新增、替换(全部替换),patch用于部分修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值