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容器
      AutoConfigurationImportSelector类的主要功能

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、条件化自动装配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值