Java SpringBoot 笔记
约定大于配置
一、基础
SpringBoot 优点:
- 简化配置避免大量的 Maven 导入和各种版本冲突,SpringBoot有很多starter,不需要一个个的向pom文件中添加依赖,有几个比较牛逼的注解,省去了很多xml文件配置
- 支持运行期内嵌容器,Tomcat,jetty等
- 安全策略集成简单
- 热启动
- 自带应用检测功能
二、自动装配原理
2.1、核心注解:@SpringBootApplication
- 1、
@SpringBootConfiguration
@Configuration
:java配置注解
- 2、
@ComponentScan
- 3、
@EnableAutoConfiguration
@AutoConfigurationPackage
@Import({Registrar.class})
:利用Registrar批量导入组件,导入的是main所在包的所有组件
@Import(AutoConfigurationImportSelector.class)
:借助这个类将所有符合自动配置条件的bean定义加载到Ioc容器
2.2、条件装配注解
- @ConditionalOnClass : 系统中有这个类
- @ConditionalOnMissingClass : 没有这个类
- @ConditionalOnBean : 有某种bean
- @ConditionalOnMissingBean:没有
- @ConditionalOnProperty:指定的配置属性要有一个明确的值
- @ConditionalOnResource:Classpath里有指定的资源
- @ConditionalOnWebApplication:这是一个Web应用程序
- @ConditionalOnNotWebApplication:这不是一个Web应用程序
- @ConditionalOnExpression:给定的SpEL表达式计算结果为true
三、配置
3.1、yaml 与 properties
- application.yml
- SpringBoot 推荐使用yaml
- yaml 配置有序
- yaml 支持数组
- 更加简洁
- 配置文件的四个路径:(优先级越来越低,先找外层再找内层)
- 1、file: ./config/
- 2、file: ./
- 3、classpath:/config/
- 4、classpath:/
- 多环境配置
debug: true # 开启debug模式 sercer: port: 8081 spring: profiles: active: dev # 使用三横线可以划分多个配置文件,在上面选择激活某个特定的配置文件 --- server: port: 8082 spring: profiles: dev --- server: port: 8083 spring: profiles: dev
3.2、Java Config
配置 Spring 的纯 Java 方法,优点:
- 面向对象的配置
- 减少或消除 XML 配置
- 类型安全和重构友好
四、安全Spring Security
一些不想整理了
2.2、web开发
2.2.1、静态资源位置
- 静态资源的位置:(优·先级依次降低)
- classpath:/resources
- classpath:/static
- calsspath:/public
2.2.2、thymleaf 模板引擎
- 前端的模板引擎
五、参考
1、SpringBoot 面试题
2、SpringBoot自动配置源码源码分析
3、SpringBoot源码分析(尚硅谷)
4、条件化自动装配