• SpringBoot梳理一(快速上手及常用配置)


    一、快速创建SpringBoot项目(IDEA)

    1、file--New--Project--Spring Initialzier选中JDK版本,选中一直下一步就可以。

    项目结构图如下:

    二、SpringBoot常用配置设置

    1、使用application.yml配置文件,为了区别正式/测试环境,我分别添加了另外两个yml文件,如下图:

     通过spring:profiles:active: dev来设置具体使用哪个yml

     2、一些常用的配置介绍

    下图是我的application-dev.yml文件

    debug: false
    #前缀相同的配置项,idea会自动进行归纳     值前面一定有个空格!!
    server:
     port: 7000                                 #/设置端口
     servlet:
       context-path: /myspringboot             #/上下文:比如同时开启多个项目共用同一个端口会有问题,这样可以避免,访问:http://127.0.0.1:7000/myspringboot/
    spring:
      mvc:
        date-format: yyyy-MM-dd                #/输入  Spring MVC中对输入参数的格式化
      jackson:
        time-zone: GMT+8                       #/输出  设置JSON 日期序列化输出格式,北京时间相对伦敦有8个小时时差所以使用G
        date-format: yyyy-MM-dd HH:mm:ss       #/设置时间格式
      datasource:                              #/数据库连接配置
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://10.0.91.23:3306/dbperson?autoReconnect=true&useSSL=false&characterEncoding=utf-8
        username: root
        password: 123
      thymeleaf:
        cache: false  #/开启thymeleaf缓存,Thymeleaf热部署。注意这里有大坑,还要设置file->setting->build->complier-> Build Project Auto... 勾选

     3、日志配置(SLF4J + LogBack)   

    SJF4J是门面是标准     LogBack是框架

    直接将logback-spring.xml 拷贝到 resources文件夹下面,会自动生成日志文件,logback-spring.xml 如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    	<!--定义日志保存的路径-->
    	<!--1.更改默认的logback.xml为logback-spring.xml
    		SpringBoot当看到logback-spring.xml文件存在的时候,才会启动日志的环境切换
    		logback.xml文件没法做到
    		2. 在需要切换的环境上增加springProfile标签
    	-->
    	<springProfile name="dev">
    		<property name="LOG_HOME" value="d:/logs/dev/" />
    	</springProfile>
    	<springProfile name="prd">
    		<property name="LOG_HOME" value="d:/logs/prd/" />
    	</springProfile>
    	<!--定义一个控制台输出器,名为console-->
    	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    		<!--按pattern指定的格式输出日志,编码为UTF-8-->
    		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    			<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread]  %logger{30} - %msg%n</pattern>
    			<charset>UTF-8</charset>
    		</encoder>
    	</appender>
    	<!--定义一个日滚动(每天生成一份)的日志文件-->
    	<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    		<!--按pattern指定的格式输出日志,编码为UTF-8-->
    		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    			<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread]  %logger{30} - %msg%n</pattern>
    			<charset>UTF-8</charset>
    		</encoder>
    		<!-- 定义保存的文件名 -->
    		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    			<!--%d{yyyy-MM-dd}代表每天生成一个新的日志-->
    			<fileNamePattern>${LOG_HOME}/mysprintboot_%d{yyyy-MM-dd}.log</fileNamePattern>
    			<!--日志最多保存90天,也就是90份-->
    			<maxHistory>90</maxHistory>
    		</rollingPolicy>
    		<!-- 在日滚动文件中,强制只保存错误级别以上信息 -->
    		<filter class="ch.qos.logback.classic.filter.LevelFilter">
    			<level>INFO</level>
    			<onMatch>ACCEPT</onMatch>
    			<onMismatch>DENY</onMismatch>
    		</filter>
    	</appender>
    	<!-- 定义日志全局最低输出级别是INFO,同时向控制台和日滚动文件输出 -->
    	<root level="INFO">
    		<appender-ref ref="console" />
    		<appender-ref ref="file" />
    	</root>
    </configuration>
    

    springProfile节点:分别设置每个配置文件对应的日志路径;

    fileNamePattern节点:设置日志文件名;

    root节点:设置日志记录级别 (Debug->info->warn->error 四个级别)

      生成日志结果如下:

      

    4、读取自定义配置文件属性值

    我在resources文件夹下面新增我的配置文件config.properties

     

    现在我需要在页面上读取并显示出来,做法如下:

    在入口文件添加:

    //在入口类启动时加载config.properties
    @PropertySource("classpath:config.properties")

     在controller 方法里面注入配置信息,有两种方式,如下:

    @Controller
    public class MyController {
        @Value("${app.name}")              //1、通过@Value注解,直接获取配置属性值
        private String name;
        @GetMapping(value="/config1")
        public String getConfigName()
        {
            return name;
        }
    
        @Resource //相同功能可使用@Autowire    //2、将我的配置属性封装成一个AppConfig的类中,注入
        private AppConfig appConfig;
        @GetMapping(value="/config2")
        public String getConfigInfo()
        {
            return appConfig.getInfo();
        }
    }
    

    AppConfig.java  代码如下:

    @Component                               //这是一个组件类,写上这个注解,SPringBoot会在启动时加载它
    @ConfigurationProperties(prefix="app") //将所有app前缀的属性自动赋值给对应Bean 属性
    @Component                               //这是一个组件类,写上这个注解,SPringBoot会在启动时加载它
    @ConfigurationProperties(prefix="app")  //将所有app前缀的属性自动赋值给对应Bean 属性
    public class AppConfig {
        private String name;
    
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    
        public String getInfo()
        {
            return "姓名:"+name;
        }
    }
    

    结果如下图所示:

  • 相关阅读:
    deepsort+yolov3实现多类别多目标跟踪
    WAR2020暑期补题集
    【数据结构】浅谈主席树
    Github本地上传命令
    【蓝桥杯】2017年第八届蓝桥杯C/C++B组省赛——C题 承压计算
    【蓝桥杯】2017年第八届蓝桥杯C/C++B组省赛——B题 等差素数列
    【蓝桥杯】2019年第十届蓝桥杯C/C++ B组省赛——I题 后缀表达式
    防御Mimikatz-转载
    SQL注入之判断数据库
    XPATH注入
  • 原文地址:https://www.cnblogs.com/qiujianfeng/p/10120016.html
Copyright © 2020-2023  润新知