springboot

前言

springboot集成了web开发中的所需要的各种其他框架,只需要在pom文件中引入相应的启动器依赖即可,所有的系统配置,都是通过配置类来完成的,只需要在配置文件中赋值即可,使用统一的slf4j日志进行打印,对于web开发,是不支持JSP的,而是采用了另外一种模板引擎thymeleaf

一、配置文件

1、系统配置文件

application.yaml/yml/properties,用于系统配置,上下文路径,端口号,等等
yaml:使用:空格 赋值,具有层级关系的采用使用空格,具有同一层级的空格相同
properties:=连接属性名和属性值

2、属性配置文件

1)简单使用

在配置类中加上@ConfigurationProperties(prefix = “person”)表明会在系统配置文件中使用person前缀的属性名进行属性注入,也可使用spring注解的value("${}")进行注入,再加上@PropertySource("")指定properties配置文件,这样就是通过属性配置文件注入

@Component
@PropertySource(value={"classpath:/person.properties"})
@ConfigurationProperties(prefix = "person")
public class Person {
    //@Value("${person.userName}")
    private String userName;
    private Integer age;
    //@Value("${person.birthday}")
    private Date birthday;
    private Address address;
    private List list;
    @Override
    public String toString() {
        return "Person{" +
                "userName='" + userName + '\'' +
                ", age=" + age +
                ", birthday=" + birthday +
                ", address=" + address +
                ", list=" + list +
                '}';
    }

  
//属性配置文件
person.userName=黎洋
person.age=10000
person.address.province=${person.user:default}
person.address.city=${random.uuid}
value.usr=ly
value.pwd=123456

2)其他

1)JSR303数据校验:在类上加入validated注解,在属性加上对应的数据类型@email表示数据需要符合邮箱格式,configurationproperties是支持的(成功/失败)_,而vlaue不支持(总是成功)

2)在配置文件中支持使用 取 值 , 也 可 以 使 用 一 些 函 数 {}取值,也可以使用一些函数 使{random.uuid},如果取其他属性值不存在,那么默认是default,如果是int类型,那么会出错

3)SpEl:configurationproperties不支持,age:#{4+3},不行的。value支持#{4+3},写入7

4)

3、profile文件

类似这样的命令application-profile.yaml/yml/properteis,为系统配置文件多个模块,需要在系统配置文件中启动才能起作用,特别的在yaml/yml内部可以使用—以---作为多个模块的划分,第一个模块是用来启动启动模块的,其他模块的声明是spring.profiles:[profiles]

server:
  port: 8082

spring:
  profiles:
    active: ww  #启动ww模块的配置
    
---
server:
  servlet:
    context-path: /ww
spring:
  profiles: ww #声明当前模块的配置名称

4、系统配置文件加载位置及优先级

1)文件加载位置:
./config/,./,classpath:/config/,classpath:/,加载优先级由高到低,高优先级覆盖低优先级

2)文件优先级
yaml>yml>properties,高优先级覆盖低优先级

3)其他配置,
①可通过JVM参数进行配置,
②可以在打包好的jar包的同目录下,声明application-[profile]/application文件进行配置,这样的配置大于jar包里面的配置的,且application-[profile]>application
③可以在java -jar 命令中进行配置
java -jar epin.jar --server.port=5555

二、web静态资源文件

1、资源文件位置

1、默认加载路径classpath:/static/,classpath:/public/,classpath:/resource,classpath:/,classpath:/MET-INFO/resources/,

2、添加静态资源加载路径,获取图片

spring.mvc.static-path-pattern=/pic/**
spring.resources.static-locations=file:D:\\epin\\images

registry.addResourceHandler("/pic/**").addResourceLocations("file:D:\\epin\\images");

2、视图解析器

1)thymeleaf
如果想得到thymeleaf的模板引擎的支持,那么直接导入相应的依赖即可,默认返回的视图就是在thymeleaf下面,如果没有引入thymeleaf,需要我们自己定义返回的视图路径

2)JSP
加入相关的依赖,并且在IDEA中进行配置,修改视图解析器的路径

3)视图解析器

spring.mvc.view.prefix=classpath:/
spring.mvc.view.suffix=.html

3、自定义错误页面

三、日志

1、springboot中的日志管理

开发者使用Spring Boot框架时,就依赖了spring-boot-starter-logging,该依赖包为开发者的日志系统提供了一个抽象层接口
springboot默认使用slf4j的抽象类和logback实现类实现日志打印,如果仅导入slf4j是无法实现打印方法,还需要导入其他日志类实现具体的打印方法, 可能还需要导入设配器层的依赖,

如果其他框架中使用的日志打印是实现类不一样,可以在依赖exclusion标签去除掉日志类,使用springboot日志类替代就可以了,替换默认的框架也是如此。

可以在配置文件中设置打印级别和输出的文件路径

2、日志打印

默认的打印级别是info,也就是说前面的打印方法在执行时都是没有效果的
trace<debug<into<warn<error

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class DemoApplicationTests {

    Logger logger = LoggerFactory.getLogger(getClass());

    @Test
    void contextLoads() {
        logger.debug("debug");
        logger.info("info");
        logger.warn("warn");
        logger.error("error\n");
    }
}

四、集成mybatis

五、自动配置

@SpringBootApplication
在这里插入图片描述
@EnableAutoConfiguration
在这里插入图片描述
开启自动配置,扫描主启动类所在包及其子包下的所有的注解bean,在扫描configuration注解配置类时,这个注解上还有EnableConfigurationProperties注解,用来指定配置类属性条件,通过@condition注解可以用来判断是否决定启用这个配置

@AutoConfigurationPackage
在这里插入图片描述
@Import(AutoConfigurationImportSelector.class)
①导入一个class,创建对象
②导入一个configuration注解的对象,创建这个类中所有的@bean注解方法的对象
③导入一个实现接口的类,重写方法返回全限定名称的数据,并且创建这些对象。
从spring-boot-autoconfigure中的MET-INFO中的spring.factories中获取程序所需相应的全限定名称的配置类。

总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值