1.微服务: -一个项目 可以由多个小型服务构成(微服务)

  1. spring boot可以快速开发微服务|

a.简化j2ee开发
b.整个spring技术栈的整合
c.整个j2ee技术的整个

准备:
jdk:
JAVA_ HOME: jdk根 目录
path: jdk根目录\bin
classpath: . ; jdk根目录\lib
maven

MAVEN_ HOME: maven根 目录
path: maven根目录\bin

配置Maven本地仓库: mvn根 目录/ conf/ setting. xml

目录结构
resources: .
static:静态资源(js css图片音频视频)
templates:模板文件(freemarker , thymeleaf;默认不支持jsp)

appl ication. properties:
配置文件

spring boot内置了tomcat, 并且不需要打成war再执行。

可以在appication. properties对端口号等服务端信息进行配置

spring boot将各个应用/三方框架设置成了一个个“场景”stater,
以后要用哪个,只需要引入那个场景即可。
选完之后,s
spring
boot就会将该场景所需要的所有依赖自动注入。
例如选择
‘web’
’, spring boot就会将web相关的依赖(tomcat json) 全部引入本项目
@SpringBootAppl icat ion: spring boot 的主配置类

该注解包含:
@Spr i ngBootConf i guration

@Enabl eAutoConf i gurat ion 使spring boot可以自动配置

@configuration

表示“配置类”: 1.该类是一个配置类
2.加了@Configuration注解的类,会自动纳入Spring容器

spring boot 在启动时,会根据META- INF/spring. factories找到相应的三方依赖

并将这些依赖引入该项目

自己写的
引入三方依赖(jar、配置)

总结:
编写项目时,- -般会对自己写的代码以及三方依赖进行配置。但是spring boot可以自动进行配置:
a:自己写的代码,spring boot通过@Spr ingBootConf igurat ion自动帮我们配置;
b.三方依赖通过spring- boot-autoconfigure- -2. 0.3. RELEASE. jar中的META- INF/ spring. factories进行声明,然后开启使用

spring-boot-autoconfigure-2.0. 3. RELEASE. jar包中包含了J2EE整合体系中需要的依赖。

c.如何自动装配:

通过观察该源码发现:
@Configuration:标识此类是一个配置类 、 将此类纳入springioc容器

如:通过HttpEncodingProperties将编码设置为了UTF_ 8

如何修改改编码:通过改Ht tpEncodingProperties的predfix+属性名进行修改

1每一个XxAutoConfiguration都有很多条件@Conditional0nXxx,当这些条件都满足时,配置生效

2全局配置文件中的key, 来源于某个Properties文件中的prefix+属性名

image-20200526090050002

如何知道spring boot开启了哪些自动装配、禁止了哪些自动装配:application. properties中debug=true

Positive matches

积极装配 表示spring boot自动开启的装配

negative matches

消极装配 没开启的

配置文件
作用: spring boot自动配置(约定,8080 ). 可以使用配置文件对默认得配置进行修改

默认全局配置文件:
application. properties k=v
application. yml 不是一个标记文档 k:空格v ;通过垂直对齐指定层次关系 ; 默认可以不写引号; “”会将其中的转义符进行转义,其他得不会

1
2
3
server :
port: 8882
path: /a/b/c

xml:是一个标记文档

1
2
3
4
<server>
<port>8882</ port>
<path>/a/b/c</ path>
</server>

9.通过yam1给对象注入值:
注入值
s tudent:
#name: zs
#age: 23
sex: true
birthday: 2019/02/12
绑定:

@Component //将此Javabean
@ConfigurationProperties (prefix=” student”)
public class Student

image-20200528092519700

  1. @PropertySource:默认会加载applicat ion. properties/ application. yml文件中的数据;
    例如@PropertySource (value= {”classpath: conf. properties” } )加载conf. properties

但是,@PropertySource 只能加载properties,不能加载yml

  1. @ImportResource
    spring. boot 自动装配/自动配置.
    spring等配置文件默认 会被spring boot 自动给配置好。
    如果要自己编写spring等配置文件,spring boot 能否识别?默认不识别。

随机占位表达式

$ {random. uuid} : uuid
$ {random. value}随机字符串.
$ {random. int}: 随机整型数
$ {random. long}: 随机长整型数
$ {random. int(10)}: 10以内的整型数
$ {random. int[1024, 65536]}: 指定随机数范围

13.多环境的切换(profile)

a properties

b yml

c.动态切换环境
i:通过运行参数指定环境
(1) STS(Eclipse) : Run Configuration - Argument - program Argument
–spring. profiles. active=环境名
(2)命令行方式:
java -jar_ 项目名. jar –spring. profiles. active=环境名
ii:通过vm参数指定环境
STS(Eclipse) : Run Configuration - Argument - program Argument
-Dspring. profiles. active=环境名|

  1. 配置文件的位置

    内部

    properties和yml中的配置,相互补充;如果冲突,则properties优 先级高。
    spring. boot默认能够读取的app1 ication. properties/ application. yml,这2个文件可以存在于以下
    file:项目根目录/config
    file:项目根目录
    classpath:项目根目录/config
    classpath:项目 根目录

注意:
a.如果某项配置冲突,则优先级从上往下
b.如果不冲突,则互补结合使用

外部:

在项目Run confi guration , argumenets:
– spr ing. config. location=文件路径
如果同一个配置同时存在于内部配置文件和外部配置文件,则外部>内部

通过命令行调用外部配置文件
java -jar项目. jar – spring. config. location=D:/ appl ication. properties

14.日志
日志框架UCL JUL jboss- logging, logback, log4j, 1og4j2, s1f4j…
spring boot默认选用slf4j, logback

spring boot默认帮我们配置好了日志,我们直接使用即可。

日志级别

TRACE< DEBUG< INFO<WARN< ERROR< FATAL<0FF

springboot默认的日志级别是info (即只打印info及之 后级别的信息

可以通过配置将日志信息存储到文件中logging. file=springboot. log存储到了项目的根目录中的springboot.log中

也可以指定具体的日志路径: logging. file=D:/springboot. log
也可以存储到一一个文件夹中,logging. path=D:/log/, 并且默认的文件名是spring. log
指定日志显示格式:
a.日志显示在console中I
b.日志显示在文件中

  1. springboot开发Web项目 (静态资源html css js )
    new - spring starer -设置I (选择需要的场景,web)
    springboot是-一个jar,因此静态资源就不是再存放到webapps中,

静态资源的存放路径通过WebMvcAutoConfiguration类的addResourceHandlers ()指定/webjars

spring boot将静态资源存入到jar包中,引入:http://localhost:8080/webjars/jquery/3.5.1/jquery.js

如何自己写静态资源,如何放到如spring boot中?将自己写的静态资源-> jar

推荐: springIboot约定:springboot将–些目录结构设置成静态资源存放目录

默认目录

“classpath:/META- INF/resources/”,” classpath:/resources/”,
”classpath:/static/“, ”classpath:/public/”

注意:在以上目录存放资源文件后,访问时不 需要加前缀,直接访问即可: http://localhost : 8080+名字

设置欢迎页:
welcomePageHandlerMapping

网站中网页标签的Logo是固定名字favicon.ico

自定义favicon. ico :阅读源码得知:只需要将 favicon. ico文件放入任意静态资源目录中即可

总结: 1. 通过源码发现静态资源的目录
2.用静态资源:只需要将静态资源放入以上目录即可
3.其他特定的文件(欢迎页、ico) ,只需要根据约定放入改 目录即可

动态资源: JSP (spring. boot默认不支持)
推荐:模板引擎thymeleaf
网页=模板+数据|

使用thymeleaf:代码在哪里写?
Thyme leafAutoCongifutation、
XxProperties
通过Thyme leafProperties源码得知:
使用thymeleaf只需要将文件放入目录: “classpath:/templates/“;文件的后缀:”. html”;

th就是替换原有html的值: th;html属性名=值 ;

/<p id=” pid” class=” pclass’> /

th:id=” $ {welcome}”th:class=” $ {welcome}”th:text=” $
th:xx_ (参 见第10章Attrubite Pre…. )
th:text 获取文本值(不转义)
th:utext获取文 本值

除了$以外其他符号?查看 第四章Standard Express….|