SpringBoot学习笔记

SpringBoot——打包成jar包,内嵌tomcat;微服务架构!

springCloud:整理扩展spring

http://mp.weixin.qq.com/mp/homepage?__biz=Mzg2NTAzMTExNg==&hid=1&sn=3247dca1433a891523d9e4176c90c499&scene=18#wechat_redirect

配置文件详解:

https://zhuanlan.zhihu.com/p/57693064

约定大于配置

Spring Boot的主要优点:

  • 为所有Spring开发者更快的入门

  • 开箱即用,提供各种默认配置来简化项目配置

  • 内嵌式容器简化Web项目

  • 没有冗余代码生成和XML配置的要求

代码快速生成网站

https://start.spring.io/

创建spring项目:

新项目中修改配置文件:

修改端口号:

修改启动banner:

在resources目录下创建banner.txt文件。在其中输入要实现的内容:

自动配置:

pom.xml

        核心依赖在父工程中

        引入依赖时不需要指定版本,是因为有这些版本仓库

结论:springboot所有的自动配置,都是在启动的时候扫描并加载:spring.factories 所有的自动配置类都在这里,但是不一定生效,要判断条件是否成立,只要导入了对应的start,就有对应的启动器了。有了启动器,我们自动装配就会生效,然后配置成功

        

启动器:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter/artifactId>
    <scope>test</scope>
</dependency>

启动器:springboot的启动场景

帮我们自动导入某个环境的所有依赖

会将所有场景变为一个个启动器

主程序:

 注解:

@SpringBootApplication:标注这个类是一个springboot应用

@SpringbootConfiguration:springboot配置

@EnableAutoConfiguration:自动导入包

原理:

        1、springboot在启动的时候,从类路径下/META/INF/spring.factories获取指定的值

        2、将这些自动配置的类导入容器,自动配置就会生效。

        3、以前需要手动配置的东西,现在spring帮我们做了

        4.整合javaEE,解决方案和自动配置的东西都在下图这个jar包下:

        

        5、他会把所有需要导入的组件,以类名的方式返回,这些组件就会被添加到容器

        6、有了自动配置类,免去了我们手动配置文件的操作 

启动运行:

        Sptingapplication.run方法:启动了一个服务、        

yaml语法

yaml是标记语言

配置文件

文件名是固定的,有两种:

1:application.properties

        语法:key=value

2:application.yaml

        语法:key:空格 value

给属性赋值:

第一种:使用注解@ConfigurationProperties(prefix="yaml中的对象名")

第二种:指定配置文件:@PropertySource(value="calsspath:...")

二:

配置文件yaml中可以使用EL表达式,

 ${person.hello:hello}

        从person中取hello属性,若没取到,则设置为冒号后的值“hello”

松散绑定 :

java中的驼峰命名可以和yaml中的 ‘-’ 识别并匹配

jsr303数据校验:

@Validated

        子注解

        @Email(massage="邮箱格式错误")

配置文件的位置和优先级:

springboot多环境配置 

         选择激活哪一个配置文件

properties设置:

 yaml设置:

使用   ---   分隔

 写在一个文件里

SpringBoot Web开发

springboot帮我们自动配置了什么?能不能修改?修改哪些东西?

       xxxxAutoConfiguration...向容器中自动配置组件

        xxxxProperties:自动配置类,装配配置文件中自定义的一些内容

要解决的问题:

        1、静态资源导入

        2、编写首页

        3、模板引擎Thymeleaf

        4、装配扩展SpringMVC

        5、增删改查

        6、拦截器

        7、国际化

1、静态资源

        未自定义:

以下三个资源文件夹都有效且分1 2 3优先级

 2、编写首页

        名为index

在templates目录下的所有页面,只能通过controller跳转

        修改 网页标签logo

        导入图片到默认静态资源目录,修改名为favicon.ico即可(不显示的话,清缓存,重启浏览器)

3、模板引擎Thymeleaf

作用:写一些页面的模板

        官网:https://www.thymeleaf.org/

         导入包

<!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring5 -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>

        </dependency>
        <!-- https://mvnrepository.com/artifact/org.thymeleaf.extras/thymeleaf-extras-java8time -->
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-java8time</artifactId>

        </dependency>

取值:

controller:

 html:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>

<h1 th:text="${msg}"></h1>

</body>
</html>

转译;

 

遍历数组,集合:

 

 

普通变量:

        ${}

国际化消息:

        #{}

URL

        @{}

片段表达式

        ~{}

文本

        单引号   '  '

 数字:直接写

空值:null

MVC配置原理

1、编写mvc配置类

 扩展视图解析器:

@Configuration注解

package com.song.springbootweb.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.Locale;
//如果想自定义功能,只需要写这个组件,然后将它交给springboot,springbot就会帮我们自动装配
//扩展mvc
@Configuration
    public class MyMvcConfig implements WebMvcConfigurer {
//public interface ViewResolver 实现了视图解析器接口的类,就可以把它看做视图解析器
    
    @Bean
    public ViewResolver myViewResolver(){
        return new MyViewResolver();
    }
    public static class MyViewResolver implements ViewResolver{
    @Override
    public View resolveViewName(String s, Locale locale) throws Exception {
        return null;
    }
}   
}
自定义日期格式化:
spring.mvc.format.date=

         如果要扩展springmvc,官方建议我们这样做

@Configuration
    public class MyMvcConfig implements WebMvcConfigurer {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        //视图跳转
        registry.addViewController("/song").setViewName("index");
    }
}

 在springboot中,有非常多的xxxxxconfiguration(配置类)帮助我们进行拓展配置,只要看见这个东西,我们就要注意

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值