SpringBoot学习
微服务阶段:javase:OOPmysql:持久化html+css+js+jquery+框架+视图:框架不熟练,css不好javaweb:独立开发MVC三层架构ssm:简化我们的开发流程war:运行tomcat程序spring再简化:SpringBoot - jar:内嵌Tomcat软实力:聊天+ 举止+ 谈吐+见解第一个SpringBoot程序jdk 1.8maven 3.5.2spring b
微服务阶段:
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)]](https://i-blog.csdnimg.cn/blog_migrate/4e40cbec0bf25d8e700e8703017cc59f.png#pic_center)


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)]](https://i-blog.csdnimg.cn/blog_migrate/c3b97d42a1f4ec27a94870a91046882a.png#pic_center)
模板引擎:
结论:只需要使用Thymeleaf,只需要导入对应的依赖就可以了,我们讲html放在我们的template目录下即可
Thymeleaf常用指令
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5nQab6jg-1616898414930)(C:\Users\丿剑来·\Pictures\SpringBoot\thymeleaf-command.png)]](https://i-blog.csdnimg.cn/blog_migrate/e80d8553f4a6980e17175d57da6e7ab7.png#pic_center)
格式化
搜索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
更多推荐



所有评论(0)