SpringBoot部分笔记整理

这篇博客详细介绍了SpringBoot的各个方面,包括创建工程、基本配置、日志管理、WEB开发、数据库连接、MyBatis集成以及Docker的使用。讲解了SpringBoot的微服务特性、自动配置原理,以及如何配置和自定义SpringBoot应用。还探讨了SpringBoot与MyBatis的整合,使用Lombok简化代码,并介绍了MyBatis Generator的逆向工程功能。
摘要由CSDN通过智能技术生成

第一节,创建springboot工程


1、微服务

概念:微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议

2、SpringBoot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者

3、环境约束

  1. jdk1.8以上版本(java -version 可查看jdk)
  2. 2maven 3.3以上版本

4、目录结构

  1. static:静态资源文件
  2. templates:模板文件
  3. application.properties:配置文件

5、注意(Spring boot)

  1. springboot内置了Tomcat,不需要配置Tomcat,可以在application.properties对端口号等服务端信息进行配置
  2. SpringBoot将各个应用/三方框架 设置成了一个个"stater",要用哪个场景引入哪个场景即可"开箱即用"
    • @SpringBootApplication:spring boot 的主配置类
    • @SpringBootConfiguration包含@Configuration,表示“配置类”
    • @EnableAutoConfiguration:使spring boot可以自动配置

6、运行SpringBoot主程序测试

@SpringBootApplication
public class FirstbootApplication {
       
    public static void main(String[] args) {
   
	SpringApplication.run(FirstbootApplication.class, args);
	}
}

7、将程序打包成一个可以执行的jar包

<build>
    <plugins>
       <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
       </plugin>
    </plugins>
</build>

8、总结

  1. 自己写的代码通过@SpringBootConfiguration自动帮我们配置
  2. 三方依赖通过@EnableAutoConfiguration开启使用即可

第二节,SpringBoot基本配置


一、SpringBoot默认使用的全局配置文件

  • application.properites
  • application.yml
  • 作用:可以对一些默认配置值进行修改
  • 注意:配置文件的名称是固定的

二、如何修改springBoot的默认配置

模式:

  1. SpringBoot在自动配置组件的时候,会先看容器中有没有用户自己配置的(@Bean、@Component)如果没有才自动配置,如果有些组件可以有多个(ViewResolver),会将用户的配置和自己的默认的结合起来

三、.yml(YAML)

YAML(YAML Ain’t Markup Language)一种简洁的标记语言的文件,以数据为中心比json、xml等更适合做配置文件

sercer:
	port:8090

四、.yml基本语法

1、语法规则
  1. 大小写敏感
  2. 使用缩进表示 层级关系
  3. 缩进时不允许使用 tab键,只允许使用空格
  4. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
2、值的写法
  1. 字符串默认不用加上单引号或者双引号
  • “”:双引号:不会转义字符串里面的特殊字符,特殊字符会作为本身想表示的意思
  • ‘’:单引号:会转义特殊字符,特殊字符终只是一个普通的字符串数据
  1. 对象 (对象的一组键值对,使用冒号结构表示)
#普通写法
firends:
	name: 张三
	age: 20
	
#行内写法
firends: {
   name: 张三,age: 20}
  1. 数组 (用值表示数据中的一个元素)
#普通写法
person:
  - student
  - boss
  - teacher
#行内写法
person:[student, boss, teacher]
  1. Map (直接使用键值对)
#普通写法
name: tian
age: 12
#行内写法
{
   name: tian, age: 12}

五、配置文件

  1. 配置文件乱码解决方式
    在这里插入图片描述

  2. @Value获取值和@ConfigurationProperties获取值比较

    功能 @ConfigurationProperties @Value
    指定方式 批量注入配置文件中的属性 一个个指定
    松散语法 支持 不支持
    SpEl 不支持 支持
    JSR303数据校验 支持 不支持
  3. @Property Source & @ImportResource的区别

    @Property Source:加载指定的配置文件

    @ImportResource:导入Spring的配置文件,让配置文件里面的内容生效

六、配置文件占位符

  1. 随机数

    ${
         random.value}
    ${
         random.int}
    ${
         random.long}
    ${
         random.int(10)}
    ${
         random.int(1024,65536)}
    
  2. 可使用占位符获取之前配置的值,如果没有可以用 “:”指定默认值

七、激活指定profile

  1. 在配置文件中指定 spring.profiles.active=dev

  2. 命令行:

    java-jar spring-boot-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev;

  3. 虚拟机参数

    -Dspring.profiles.active=dev

八、配置文件加载位置

​ -file:./config/

​ -file:./

​ -classpath:./config/

​ -classpath:/

​ 优先级由高到低,高优先级的配置会覆盖低优先级的配置,同时互补;

九、自动配置原理

  1. SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration

  2. 每一个自动配置类进行自动配置功能

  3. 所有在配置文件中能配置的属性都是在xxxxProperties类中封装,可以参照功能对应的属性类

  4. 我们能配置的属性都是来源于Properties

  5. 一但配置类生效,配置类会给容器中添加各种组件,组件的属性是从对应的properties类中获取的,properties类里面的每一个属性又是和配置文件绑定的

  6. 精髓:①、SpringBoot启动会加载大量的自动配置类

    ​ ②、先看我们需要的功能有没有SpringBoot默认写好的自动配置类

    ​ ③、再看这个自动配置类有哪些组件(要用的组件有,就不用自己配置了)

    ​ ④、给容器中自动配置类添加组件的时候,会从properties类中获取属性,可以在配置文件中指定这些 属性的值

    ​ ⑤、自动配置类必须在一定的条件下才能生效,可以通过配置debug=true打印自动配置报告

    @Configuiation								//表示这是一个配置类
    @EnableConfiguiationProperties(xxx.class)	//启动指定类的功能进行绑定
    @ConditionalOnWebApplication	//判断当前是否是web应用,如果是当前配置生效
    @ConditionalOnClass(xxx.class)	//判断当前项目有没有xxx类
    	//CharacterEncodingFilter:SpringMvc中进行乱码解决的过滤器
    @ConditionalOnProperty			//判断配置文件中是否存在某个配置
    @Bean	//给容器中添加一个组件
    

第三节,日志


一、常用日志框架

  1. 市面上常用的日志框架:JUL,JCL,jboss-Logging,logback,log4j,log4j2,slf4j…

    日志门面 日志实现
    JCL(jakarta Commons Logging)
    slf4j(Simple Logging Facade for java)
    jboss-Logging
    log4j
    log4j2
    JUL(java.util.logging)
    Logback
    springboot选用slf4jLogback

二、如何让系统中所有的日志都统一到slf4j

  1. 将系统中其他日志框架先排除掉
  2. 用中间包来替换原有的日志框架
  3. 导入slf4j其他的实现
  4. SpringBoot能自动适配所有的日志,如果要引入其他框架,一定要把其他框架的默认日志依赖移除掉
  5. 在这里插入图片描述
  • 查看依赖关系:右击Diagram→Show Dependencies…

三、日志配置的修改与格式

  1. 日志输出配置修改

    #指定日志级别
    logging.level.com.sboot.firstboot=trace
    #指定输出日志位置
    logging.path=/spring/log
    #指定控制台输出日志格式
    logging.pattern.console=控制台日志
    #指定文件输出日志格式
    logging.pattern.file=文件日志
    #激活开发环境
    spring.profiles.active=dev
    #禁用缓存
    spring.thymeleaf.cache=false
    
  2. 日志输出格式

    %d:表示日期时间

​ %thread:表示线程名

​ %-5level:表示级别从左显示5个字符宽度

​ %logger{50}:表示logger名字最长50个字符,否则按照句点分割

​ %msg:表示日志消息

​ %n:表示换行

​ eg:%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n

  1. 指定配置

    logback.xml:直接被日志框架识别了

    logback-spring.xml:日志框架不加载,由springBoot加载,可使用springboot的高级功能

第四节,SpringBoot WEB开发


一、开发步骤

  1. 创建SpringBoot应用,选中我们需要的模块、、、、、
  2. 在配置文件中指自己编写业务代码

二、SpringBoot对静态资源的映射规则

  1. webjars:以jar包的方式引入静态资源

  2. 访问当前项目静态资源

    "classpath:/META-INF/resources"
    "classpath:/resources"
    "classpath:/static"
    "classpath:/public"
    "/"	//当前项目根路径
    
  3. 欢迎页/首页 默认访问静态资源文件夹下的 index.html

  4. 网页图标默认访问静态资源文件下的 /favicon.ico

三、模板引擎

常用引擎:jsp、Velocity、Freemarker、thymeleaf(Spring推荐)

  1. Thymeleaf使用&语法

    把HTML页面放在classpath:/templates/下 Thymeleaf就可以自动渲染

    使用:

    ①导入thymeleaf的语法空间

    <html lang="en" xmlns:th="http://www.thymelealf.org"/>
    

    ②使用thymeleaf语法

四、扩展和接管SpringMVC

1)扩展SpringMVC

​ 方法:编写一个配置类(@Configuration),是WebMvcConfigurAdapter类型,不能标注@EnableWebMvc,SpringBoot既保留了自动配置,也能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值