微服务阶段:

javase:OOP

mysql:持久化

html+css+js+jquery+框架+视图:框架不熟练,css不好

javaweb:独立开发MVC三层架构

ssm:简化我们的开发流程

war:运行tomcat程序

spring再简化:SpringBoot - jar:内嵌Tomcat

软实力:聊天+ 举止+ 谈吐+见解

第一个SpringBoot程序

  • jdk 1.8
  • maven 3.5.2
  • spring boot:最新版
  • IDEA

官方提供了一个快随生成的网站

原理初探

自动配置:

pom.xml
  • spring-boot-dependencies:依赖在父工程中
  • 我们在写或者引入一些SpringBoot依赖的时候,不需要指定版本,因为有这些版本仓库
启动器:
 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
  • 说白了就是SpringBoot的启动场景
主程序
//@SpringBootApplication:标注这个类是一个springboot应用
@SpringBootApplication
public class SpringbootApplication {

    //启动SpringBoot
    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class, args);
    }
}
注解
@SpringBootConfiguration: springboot配置
  @Configuration: spring配置类
    @Component : spring组件
      
      
      
@EnableAutoConfiguration:自动配置
  @AutoConfigurationPackage:自动配置包
    @Import({Registrar.class}) : 导入选择器
  @Import({AutoConfigurationImportSelector.class}) :选择器
     List<String> configurations = this.getCandidateConfigurations(annotationMetadata, attributes);  :获取所有的配置
    
    

获取候选的配置:

    protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {
        List<String> configurations = SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());
        Assert.notEmpty(configurations, "No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.");
        return configurations;
    }

META-INF/spring.factories:自动配置的核心文件
在这里插入图片描述

Properties properties = PropertiesLoaderUtils.loadProperties(resource);
所有资源加载到配置类中

结论:SpringBoot的所有的自动配置都是在启动的时候扫描并加载:spring.factories所有自动配置类都在这里面,但是条件不一定生效,需要判断条件是否成立,只要导入对应的start就会有对应的启动器,我们的自动装配就会生效

  • 1.springboot在启动的时候,从类路径下/META-INF/spring.factoies获取指定的值

  • 2.将这些自动配置的类导入容器,自动配置就会生效,帮我门自动配置

  • 3.以前我们需要自动配置的东西,现在springboot帮我们做了

  • 4.整合JavaEE,解决方案和自动配置的东西都在spring-boot-autoconfigure-2.4.4.jar里面

  • 5.它会把所有需要导入的组件,以类名的方式返回,这些组件就会被添加到容器

  • 6.容器中也会存在非常多的xxxAutoConfiguration的文件(@Bean),就是这些类给容器中导入了这个场景所需要的组件

  • 7.有了自动配置类就免了我们手动编写配置文件的工作

在这里插入图片描述

主启动类怎么运行

在这里插入图片描述

核心:@JavaConfig @Configuration @Bean

Docker:进程

关于SpringBoot谈谈理解
  • 自动装配
  • run()

全面接管SpringMVC的配置

SpringBoot配置

yaml

yaml可以给我们的实体类赋值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L8h4j89A-1616898414922)(C:\Users\丿剑来·\Pictures\SpringBoot\ConfigurationProperties.png)]
在这里插入图片描述


在这里插入图片描述

303校验

在这里插入图片描述

Email校验

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mAizUUkc-1616898414925)(C:\Users\丿剑来·\Pictures\SpringBoot\emailzhujie.jpg)]

优先级顺序:

在这里插入图片描述

默认走的端口是8080端口,就算你删除8080还是走8080
除非用spring.profiles.active

#springboot 的多环境配置:可以选择哪一个配置
spring.profiles.active = dev  //文件是application-dev.properties



==============
相当于
server:
  port: 8081

---
server:
  port: 8082
spring:
  profiles:
    active: dev
---
server:
  port: 8083

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Positive matches:(自动配置类启用的:正匹配)

Negative matches:(没有启动,没有匹配成功的自动配置类:负匹配)

Unconditional classes: (没有条件的类)

SpringBoot的Web开发

自动装配:

springboot帮我们配置了什么?能不能修改?修改哪些?能不能拓展

  • xxxAutoConfiguration 向容器中自动配置组件
  • xxxProperties: 自动配置类,装配配置文件中自定义的一些内容

要解决的问题:

  • 导入静态资源
  • 首页
  • jsp,模板颖琼Thyemeleaf
  • 装配拓展SpringMVC
  • 增删改查
  • 拦截器
  • 国际化
静态资源配置
什么是Webjars:
通过扒源码
我们看可以看见一个/**
也就是这个目录下的所有静态资源都会被加载

在这里插入图片描述

ps:注意:优先级resources>static>public 所以public一般放一些公共资源

总结:1.Springboot目录下,我们可以使用以下方式处理静态资源
  • webjars
  • public , static, /**,resources ----->通过Localhost:8080访问
静态资源:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iw22698g-1616898414930)(C:\Users\丿剑来·\Pictures\SpringBoot\tubiao.png)]

模板引擎:

结论:只需要使用Thymeleaf,只需要导入对应的依赖就可以了,我们讲html放在我们的template目录下即可

Thymeleaf常用指令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5nQab6jg-1616898414930)(C:\Users\丿剑来·\Pictures\SpringBoot\thymeleaf-command.png)]

格式化
搜索WebMvcAutoConfiguration
  -->
  找到Formatter
  -->
  找到getDataFormat(ctrl进去)
  -->
  找到WebMvcProperties下的DataFormat
  
  
  然后在ApplicationProperties中的配置
  spring.mvc.data-format=

SpringBoot在自动配置的时候,先看容器中有无用户自己配置,没有的话就用自动配置的

通过对EnableMvc的了解
  当我们写@EnableMvc的时候
  EnableMvc会导入DelegatingWebMvcConfiguration
  而我们通过WebMvcAutoConfiguration可以得知
  里面的EnableMvc是会继承DelegatingWebMvcConfiguration然后还有个Support
  //但是在AutoConfigura中写如果有那个Support自动装配就会失效
  
  而DelegatingWebMvcConfiguration获取了所有WebMvcConfig
  
  //如果编写EnableMvc那么会导入DelegatingWebMvcConfiguration然后还有个Support
  //但是在AutoConfigura中写如果有那个Support自动装配就会失效

在SpringBoot中,有非常多xxxConfiguration(配置类)帮助我们进行拓展配置,只要看见了这个东西我们就要注意

员工管理系统

1.首页实现
1.首页配置:

注意点,所有页面的静态资源都需要使用thymeleaf接管,@{}

url使用的是@符号,

2.页面国际化:

就是配置统一标准,比如说确定中英文什么的

  • 1.需要配置i18n文件
  • 2.如果需要在项目中进行按钮自动切换,需要自定义组件LocaleResolver
  • 3.记得把自己写的组件配置到Spring容器(MyMvcConfig)中 @Bean
  • 4.这个用的是#{ }
3.拦截器

这里的MarkDown转到wolai 3.26笔记

4.增删改查

插入的模板:

~{}

1.提取公共页面

1.th:fragment=“sidebar”

~

~

3.要传递参数可以直接使用()传参,接收判断即可

2列表循环展示
5.添加员工
1.按钮提交
2.跳转页面
3.员工添加
4.添加成功
6.CRUD
7.404
8.前端
  • 模板:别人写好的,我们拿来拼接
  • 框架:组件:自己手动组合拼接起来
    • Bootstrap
    • Layui
    • semantic-ui
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐