> @Conditional派生注解(Spring注解版原生的@Conditional作用)
作用:必须是@Conditional指定的条件成立,才给容器中添加组件,配置配里面的所有内容才生效;
| @Conditional扩展注解 | 作用(判断是否满足当前指定条件) |
| ------------------------------- | ------------------------------ |
| @ConditionalOnJava | 系统的java版本是否符合要求 |
| @ConditionalOnBean | 容器中存在指定Bean; |
| @ConditionalOnMissingBean | 容器中不存在指定Bean; |
| @ConditionalOnExpression | 满足SpEL表达式指定 |
| @ConditionalOnClass | 系统中有指定的类 |
| @ConditionalOnMissingClass | 系统中没有指定的类 |
| @ConditionalOnSingleCandidate | 容器中只有一个指定的Bean,或者这个Bean是首选Bean |
| @ConditionalOnProperty | 系统中指定的属性是否有指定的值 |
| @ConditionalOnResource | 类路径下是否存在指定资源文件 |
| @ConditionalOnWebApplication | 当前是web环境 |
| @ConditionalOnNotWebApplication | 当前不是web环境 |
| @ConditionalOnJndi | JNDI存在指定项 |
**自动配置类必须在一定的条件下才能生效;**
我们怎么知道哪些自动配置类生效;
**==我们可以通过启用 debug=true属性;来让控制台打印自动配置报告==**,这样我们就可以很方便的知道哪些自动配置类生效;
```java
=========================
AUTO-CONFIGURATION REPORT
=========================
Positive matches:(自动配置类启用的)
-----------------
DispatcherServletAutoConfiguration matched:
- @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
- @ConditionalOnWebApplication (required) found StandardServletEnvironment (OnWebApplicationCondition)
Negative matches:(没有启动,没有匹配成功的自动配置类)
-----------------
ActiveMQAutoConfiguration:
Did not match:
- @ConditionalOnClass did not find required classes 'javax.jms.ConnectionFactory', 'org.apache.activemq.ActiveMQConnectionFactory' (OnClassCondition)
AopAutoConfiguration:
Did not match:
- @ConditionalOnClass did not find required classes 'org.aspectj.lang.annotation.Aspect', 'org.aspectj.lang.reflect.Advice' (OnClassCondition)
```
- Spring Boot 入门
- Spring Boot 简介
- 微服务
- 环境准备
- MAVEN设置
- IDEA设置
- Spring Boot HelloWorld
- 创建一个maven工程;(jar)
- 导入spring boot相关的依赖
- 编写一个主程序;启动Spring Boot应用
- 编写相关的Controller、Service
- 运行主程序测试
- 简化部署
- Hello World探究
- POM文件
- 父项目
- 启动器
- 主程序类,主入口类
- 使用Spring Initializer
- IDEA使用 Spring Initializer
- STS使用 Spring Starter Project快速创建项目
- 配置文件
- 配置文件
- YAML语法
- 基本语法
- 值的写法
- 普通的值(数字,字符串,布尔)
- 对象、Map(属性和值)(键值对)
- 数组(List、Set)
- 配置文件值注入
- 其他问题
- properties配置文件在idea中默认utf-8可能会乱码
- @Value获取值和@ConfigurationProperties获取值比较
- 配置文件注入值数据校验
- @PropertySource&@ImportResource&@Bean
- 配置文件占位符
- 随机数
- 占位符获取之前配置的值
- Profile
- 多Profile文件
- yml支持多文档块方式
- 激活指定profile
- 配置文件加载位置
- 外部配置加载顺序
- 自动配置原理
- 自动配置原理
- 细节
- @Conditional派生注解(Spring注解版原生的@Conditional作用)
- 日志
- 日志框架
- SLF4j使用
- 如何在系统中使用SLF4j
- 遗留问题
- SpringBoot日志关系
- 日志使用
- 默认配置
- 指定配置
- 切换日志框架
- Web开发
- 简介
- SpringBoot对静态资源的映射规则
- 模板引擎
- 引入thymeleaf
- Thymeleaf使用
- 语法规则
- SpringMVC自动配置
- Spring MVC auto-configuration
- 扩展SpringMVC
- 全面接管SpringMVC
- 如何修改SpringBoot的默认配置
- RestfulCRUD
- 默认访问首页
- 国际化
- 登陆
- 拦截器进行登陆检查
- CRUD-员工列表
- thymeleaf公共页面元素抽取
- CRUD-员工添加
- CRUD-员工修改
- CRUD-员工删除
- 错误处理机制
- SpringBoot默认的错误处理机制
- 如果定制错误响应
- 如何定制错误的页面
- 如何定制错误的json数据
- 将我们的定制数据携带出去
- 配置嵌入式Servlet容器
- 如何定制和修改Servlet容器的相关配置
- 注册Servlet三大组件【Servlet、Filter、Listener】
- 替换为其他嵌入式Servlet容器
- 嵌入式Servlet容器自动配置原理
- 嵌入式Servlet容器启动原理
- 使用外置的Servlet容器
- 步骤
- 原理
- Docker
- 简介
- 核心概念
- 安装Docker
- 安装linux虚拟机
- 在linux虚拟机上安装docker
- Docker常用命令&操作
- 镜像操作
- 容器操作
- 安装MySQL示例
- SpringBoot与数据访问
- JDBC
- 整合Druid数据源
- 整合MyBatis
- 注解版
- 配置文件版
- 整合SpringData JPA
- SpringData简介
- 整合SpringData JPA
- 启动配置原理
- 创建SpringApplication对象
- 运行run方法
- 事件监听机制
- 自定义starter