spring boot(二)--基本配置

一、简介

这里将介绍spring boot的基本配置项和约定。

二、默认约定

1、主类(注解@SpringBootApplication)命名

spring boot的主类通知以*Application命名。

2、spring boot默认扫描包的范围

spring boot会自动扫描主类的同级包或以下级包,所以主类通常放在groupId+articleId组合的包名下,

即所有类的最外层。

 3、默认配置文件

application.properties(推荐)或application.yml(具有面向对象的特点)是spring boot的全局配置文件,

位置在src/main/resource下或类路径下的/config下。

读取时使用@Value注解,如

@Value("${fruit.name}")
private String fruitName;

4、默认日志配置

spring boot 默认以logback为日志框架,具体请查看logback使用的相关资料。

5、环境设置

环境配置文件格式为application-{profile}.properties(profile自定义,如可定义生产环境配置文件为application-prod.properties

开发环境配置文件为application-dev.properties),在application.properties文件中,配置spring.profiles.active=prod

来指定当前的环境。

6、静态资源路径

默认静态文件路径为:类路径下的/static、/pubilc、/resources和/META-INF/resources,这些文件夹下的静态文件/**,

可以通过http://localhost:8080/**直接访问。

7、设置favicon

默认favicon的文件名为favicon.ico,默认文件路径在类路径根目录、类路径META-INF/resources/、类路径resources、

类路径static/或类路径public/。

关闭可在配置文件application.properties中设置spring.mvc.favicon.enabled=false

三、默认配置修改

1、启动时默认图案修改

a)在网站http://patorjk.com/software/taag/上生成自定义图案字符;

b)将生成的字符粘贴到位于src/main/resource目录下的banner.txt文件(需新建)中

重启即可看到新的自定义图标。

关闭图案可在主类中设置bannerMode为Banner.Mode.OFF如下:

new SpringApplicationBuilder(SpringbootStudyApplication.class)
        .bannerMode(Banner.Mode.OFF) //关闭启动时banner图片
        .run(args);

2、修改启动时的端口和路径(相关配置类似)

直接在application.properties中修改,如下

#指定端口号
server.port=9090
#指定路径
server.servlet.context-path=/hello

重启项目后,则通过http://127.0.0.1:9090/hello才能访问到以前的根路径

修改端口号,还可以在启动主类时指定,如java -jar xx.jar --server.port=9090

3、添加xml配置文件

spring boot中提倡无xml配置,如项目中确实需要,可以使用注解@ImportResource加载xml配置,

如:@ImportResource("classpath:spring-config.xml")

4、添加新的配置文件

除了默认配置文件application.properties,还可以添加其它配置文件,通知注解@ProperySourcer

指定properties文件的位置,如@PropertySource("classpath:properties/stu.properties")

5、properties属性直接与bean关联

除了通过注解@Value配置属性外,还可以通过注解@ConfigurationProperties直接将配置与bean关联,

如:

定义stu.properties文件,

stu.stuNo=001
stu.stuName=rice

定义Stu类

package com.dragon.springbootselfstudy.bean;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@Component
@PropertySource("classpath:properties/stu.properties")
@ConfigurationProperties(prefix = "stu")
public class Stu {
    private String stuNo;
    private String stuName;

    public String getStuNo() {
        return stuNo;
    }

    public void setStuNo(String stuNo) {
        this.stuNo = stuNo;
    }

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    @Override
    public String toString() {
        return "Stu{" +
                "stuNo='" + stuNo + '\'' +
                ", stuName='" + stuName + '\'' +
                '}';
    }
}

注意:此时maven要添加依赖


  org.springframework.boot
  spring-boot-configuration-processor
  true

四、备注

下面列出其它文件

1、完整maven依赖




  4.0.0

  com.dragon.springbootselfstudy
  springbootselfstudy
  1.0-SNAPSHOT
  jar

  spring boot study

  
    org.springframework.boot
    spring-boot-starter-parent
    2.1.0.BUILD-SNAPSHOT
    
  

  
    UTF-8
    1.8
    1.8
  

  
    
      org.springframework.boot
      spring-boot-starter-web
    
    
      org.springframework.boot
      spring-boot-configuration-processor
      true
    
    
      org.apache.commons
      commons-lang3
    
  

  
    spring boot study
    
      
        org.springframework.boot
        spring-boot-maven-plugin
      
    
  

2、主类

package com.dragon.springbootselfstudy;

import com.dragon.springbootselfstudy.bean.Stu;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.Banner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
@PropertySource("classpath:properties/stu.properties")
@SpringBootApplication
public class SpringbootStudyApplication {

    @Value("${fruit.name}")
    private String fruitName;

    @Value("${stu.stuName}")
    private String stuName;

    @Resource
    private Stu stu;

    @RequestMapping("/")
    public String index() {
        System.out.println("fruitName : " + fruitName);
        return "hello word !";
    }


    @RequestMapping("/settings")
    public String hello() {
        String settings = "fruitName : " + fruitName
                + "  stu.name : " + stuName
                + "  stu: " + stu;
        return settings;
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder(SpringbootStudyApplication.class)
//                .bannerMode(Banner.Mode.OFF) //关闭启动时banner图片
                .run(args);
    }
}

你可能感兴趣的:(springboot)