18-SpringBoot——核心-基本配置

Spring Boot & Spring Cloud 同时被 2 个专栏收录
43 篇文章 0 订阅
32 篇文章 16 订阅

SpringBoot——核心-基本配置


【博文目录>>>】


【项目源码>>>】


【基本配置】


入口类和@SpringBootApplication


Spring Boot 通常有一个名为XxxApplication 的入口类,入口类里有一个main 方法,这个main方法其实就是一个标准的Java 应用入口方法。在main 方法中使用SpringApplication.run( Xxx.class, args ),启动Spring Boot 应用项目。

@SpringBootApplication 是Spring Boot 的核心注解,它是一个组合注解。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
      @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
      @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {…}

@EnableAutoConfiguration 让Spring Boot 根据类路径中的jar 包依赖为当前项目进行自动配置。Spring Boot 会自动扫描@SpringBootApplication 所在类的同级包。

关闭特定的自动配置


通过上面的@SpringBootApplication 的源码我们可以看出,关闭特定的自动配置应该使用@SpringBootApplication 注解的exclude 参数。

@SpringBootApplication{exclude={Xxxx.class}}

定制Banner


在Spring Boot 启动的时候会有一个默认启动图案

这里写图片描述

在src/main/resources 下新建一个banner.txt 。
通过http://patorjk.com/software/taag 网站生成字符,如敲入的为“ SUPERMAN ”,将网站生成的字符复制到banner.txt 中。再启动程序,会使用新的图案。

这里写图片描述

关闭banner,使用SpringApplication.setShowBanner(false)

Spring Boot 的配置文件


Spring Boot 使用一个全局的自己置文件application.properties 或application.yml ,放置在src/main/resources 目录或者类路径的/config 下。Spring Boot 不仅支持常规的properties 配置文件,还支持yaml语言的配置文件。Yaml是以数据为中心的语言,在自己置数据的时候具有面向对象的特征。Spring Boot 的全局配置文件的作用是对一些默认配置的配置值进行修改。

命令行参数配置


Spring Boot 可以是基于jar 包运行的,打成jar 包的程序可以直接通过下面命令运行:java -jar xx.jar,可以通过以下命令修改Tomcat 端口号:java -jar xx.jar –server.port=9090

常规属性配置


在Spring Boot里,我们只需在application.properties定义属性,直接使用@Value注入即可。

类型安全的配置


Spring Boot 提供了基于类型安全的配置方式,通过@ConfigurationProperties 将properties属性和一个Bean 及其属性关联,从而实现类型安全的配置。

日志配置


Spring Boot 文恃Java Util Logging 、Log4J 、Log4刀和Logback 作为日志框架,无论使用哪种日志框架, Spring Boot 己为当前使用日志、框架的控制台输出及文件输出做好了配置,Spring Boot 使用Logback 作为日志框架。

【代码示例】


application.properties

author.name=wjc
author.age=18
package com.example.spring.boot.safetype;

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

/**
 * 通过@ConfigurationProperties 加载properties 文件内的配置,通过prefix 属性指定
 * properties 的配置的前缀,
 * Author: 王俊超
 * Date: 2017-07-14 21:01
 * All Rights Reserved !!!
 */
@Component
@ConfigurationProperties(prefix = "author")
public class AuthorSettings {
    private String name;
    private Long age;

    public String getName() {
        return name;
    }

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

    public Long getAge() {
        return age;
    }

    public void setAge(Long age) {
        this.age = age;
    }
}
package com.example.spring.boot.safetype;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Author: 王俊超
 * Date: 2017-07-14 21:04
 * All Rights Reserved !!!
 */
@RestController
@SpringBootApplication
public class SampleApplication {
    @Autowired
    private AuthorSettings authorSettings;

    @RequestMapping("/")
    public String index() {
        return "author name is " + authorSettings.getName()
                + " and author age is " + authorSettings.getAge();
    }

    public static void main(String[] args) {
        SpringApplication.run(SampleApplication.class, args);
    }
}

【运行结果】

这里写图片描述

展开阅读全文
  • 2
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值