SpringBoot入门(2)

1. yml 基本语法

SpringBoot使用一个全局的配置文件,配置文件名是固定的。可以是application.properties 或者application.yml
通常我们使用yml 来作配置文件

  1. 配置端口 与修改对象的默认值
application.yml配置如下
employee:
  age: 18
  name: 张三
spring:
  profiles:
    active: dev
---------------------
/*
1. 通过@Value("${employee.name}")  来获取配置文件给的默认值
2. 通过@ConfigurationProperties(prefix = "employee") 自动匹配字段默认值
*/
Component
@ConfigurationProperties(prefix = "employee")  
public class Employee {
    //@Value("${employee.name}")  
    private String name="离歌";
    //@Value("${employee.age}")
    private Integer age=15;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

2. Profile多环境支持

2. 为什么需要配置多环境

一套代码要在多种环境运行(开发,测试,上线),所以我们的配置文件要支持多种环境

Application.yml

server:
  port: 8081
spring:
  profiles:
    active: prod  #表示指定生产环境

---
server:
  port: 8083
spring:
  profiles: dev


---

server:
  port: 8084
spring:
  profiles: prod  #指定属于哪个环境

通常将不同环境分别配置到不同的文件,在主配置文件中指定环境
在这里插入图片描述

3. SpringBoot 自动配置的原理

  • @EnableAutoConfiguration开启自动配置
  • AutoConfigurationImportSelector 配置导入选择器
  • spring-boot-autoconfigure-2.0.5.RELEASE.jar 选择器找到自动配置的jar包
  • 找到spring.factories 文件中的 EnableAutoConfiguration 节点
  • 加载 EnableAutoConfiguration下自动配置的类,完成自动配置
    在这里插入图片描述

4. SpringBootTest的配置和使用

  1. 引入依赖的jar包
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
</dependency>
  1. 创建Springboot的测试类
@RunWith(SpringRunner.class)   //这里与Springtest不同
@SpringBootTest(classes = ApplicationConfig.class)  //这里找到配置类
public class MySpringBootTest {
    @Autowired
    private Employee employee;
    @Test
    public void testSpringTest(){
 		System.out.println(employee);
}

5. Spring boot日志支持

  1. 简单使用日志
@RunWith(SpringRunner.class)
@SpringBootTest(classes = ApplicationConfig.class)
public class MySpringBootTest {
    @Autowired
    private Employee employee;

    private Logger logger = LoggerFactory.getLogger(MySpringBootTest.class);
    @Test
    public void testSpringTest(){
        //日志显示的等级  trace >debug > info> warn >error
        logger.trace("这是一个trace日志");
        logger.info("这是一个info日志");
        logger.warn("这是一个warn日志");
        logger.error("这是一个error日志");
        logger.debug("这是一个debug日志");

    };
}
  1. 在application.properties中配置 日志
#logging.level.cn.itsource=error  //error 日志的显示等级
#logging.file=my.txt     //生成的文件名,以项目路径作为根路径
#logging.file.max-size=1KB   //文件的最大装载
//打印格式
#logging.pattern.console="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" 
  1. 指定配置文件配置logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 定义常量 : 日志格式 -->
    <property name="CONSOLE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n"/>

    <!--ConsoleAppender 用于在屏幕上输出日志-->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <!--定义控制台输出格式-->
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <!-- 设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!--打印到文件-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>logs/springboot.log</file>

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>logs/springboot-%d{yyyyMMdd}-%i.log.gz</fileNamePattern>
            <maxFileSize>1KB</maxFileSize>
            <maxHistory>10</maxHistory>
            <!--总上限大小-->
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <!--定义控制台输出格式-->
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <!-- 设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>


    <!--root是默认的logger 这里设定输出级别是debug-->
    <root level="info">
        <!--定义了两个appender,日志会通过往这两个appender里面写-->
        <appender-ref ref="stdout"/>
        <appender-ref ref="file"/>
    </root>

    <!--如果没有设置 additivity="false" ,就会导致一条日志在控制台输出两次的情况-->
    <!--additivity表示要不要使用rootLogger配置的appender进行输出-->
    <logger name="cn.itsource" level="error" additivity="false">
        <appender-ref ref="stdout"/>
        <appender-ref ref="file"/>
    </logger>

</configuration>

6. Spring boot集成 Thymeleaf模板引擎

  1. 导入依赖的jar包
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
  1. 在resources/templates下面创建模板文件 hello.html
<html lang="en" xmlns:th="http://www.thymeleaf.org"> 
<head>
    <meta charset="UTF-8">
    <title>ces</title>
</head>
<body>
<h1>成功!</h1>
<!--使用语法th:text 将div里面的文本内容设置为 -->

<div th:text="${msg}">这是显示欢迎信息</div>
</body>
</html>
  1. 编写controller
@Controller
public class HelloController {

    @RequestMapping("/index")
    public String hello(Model model){
        model.addAttribute("msg", "你的名字");
        return "hello";
    }
}
  1. 访问效果
  2. Thymeleaf 的自动配置原理
  • @EnableAutoConfiguration开启自动配置
  • AutoConfigurationImportSelector 配置导入选择器
  • spring-boot-autoconfigure-2.0.5.RELEASE.jar 选择器找到自动配置的jar包
  • 找到spring.factories 文件中的 EnableAutoConfiguration 节点
  • 加载 EnableAutoConfiguration下自动配置的类,完成自动配置
  • Thymeleaf 默认配置了视图解析器,如果你没有手动配置,就是用默认的

7.静态资源

  1. 静态资源目录

resource/static

  1. webjars

导入jquery依赖 ( http://www.webjars.org/)

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.4.1</version>
</dependency>
  1. 导入jquery的js
<script src="/webjars/jquery/3.4.1/jquery.js"></script>
  1. 设置访问的主页

resources/static/index.html

  1. 页头的图标

resources/static/favicon.ico 随便找一张图片重命名为favicon.ico

  1. 修改banner

在resources/templates/banner.txt 文件 网上可以找到banner自动生成工具
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值