Spring Boot 配置
Spring Boot 配置
1. 基本配置:
-
启动配置
-
@SpringBootApplication 是 Spring Boot 的 核心注解
-
package org.springframework.boot.autoconfigure;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.context.TypeExcludeFilter;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.core.annotation.AliasFor;
@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 {
@AliasFor(
annotation = EnableAutoConfiguration.class,
attribute = "exclude"
)
Class<?>[] exclude() default {};
@AliasFor(
annotation = EnableAutoConfiguration.class,
attribute = "excludeName"
)
String[] excludeName() default {};
@AliasFor(
annotation = ComponentScan.class,
attribute = "basePackages"
)
String[] scanBasePackages() default {};
@AliasFor(
annotation = ComponentScan.class,
attribute = "basePackageClasses"
)
Class<?>[] scanBasePackageClasses() default {};
}
-
package org.springframework.boot.autoconfigure;
-
@SpringBootApplication 是 Spring Boot 的 核心注解
解析:@SpringBootApplication 注解主要由一组注解组成:
1. @Configuration
2. @EnableAutoConfiguation 让 Spring Boot 根据类路径中的jar包依赖为当前项目进行自动 配置
1. @Configuration
2. @EnableAutoConfiguation 让 Spring Boot 根据类路径中的jar包依赖为当前项目进行自动 配置
3. @ComponentScan
- 代码如下:
-
/*** Created by Calvin on 2018/2/26*/@RestController/*** @SpringBootApplication 开启自动配置* @SpringBootApplication(exclude = {EnableAutoConfiguration.class}) 关闭特定的自动配置*/@SpringBootApplicationpublic class SpringBootStarterApplication {@RequestMapping("/")String index(){return "Hello Spring Boot";}/*** main 开启启动项目的入口* @param args*/public static void main(String[] args) {SpringApplication app = new SpringApplication(SpringBootStarterApplication.class);app.run(args);}
-
-
定制 Banner
- 方法如下:
- 运行启动
- 关闭 banner
-
SpringApplication app = new SpringApplication(SpringBootStarterApplication.class);// 开启/关闭 bannerapp.setBannerMode(Banner.Mode.CONSOLE);app.run(args);
-
-
Spring Boot 配置文件(application.properties 或 application.yml)
-
application.properties
-
application.properties 作用:对一些默认配置的配置值进行修改# method one: Tomcat的默认端口号8080修改为9090,并将默认的访问路径“/”修改成为“/helloSpringBoot”server.port=9090server.context-path=/helloSpringBoot
-
-
application.yml
-
appliaction.yml: yaml 是以数据为中心的语言,在配置数据的时候具有面向对象的特征。spring boot 还支持yaml 语言的配置文件# method two Tomcat的默认端口号8080修改为9090,并将默认的访问路径“/”修改成为“/helloSpringBoot”server:port: 9090contextPath: /helloSpringBoot
-
-
application.properties
-
使用xml 配置
-
/**
* @ImportResource 加载指定文件
* @ImportResource({"classpath:some-context.xml","classpath:another-context.xml"}) 使用 xml 配置
*/
@ImportResource
-
/**
public class SpringBootStarterApplication {
2.日志配置:
-
application.properties 日志配置
-
# 日志配置 (默认情况下 Spring Boot 使用LogBack 作为日志框架)# 配置日志级别logging.file= G:/localspace/spring/spring%20boot/springboot.log# 配置日志文件吗,格式为logging.level.包名=级别
-
3.Profile 配置:
-
Profile 是 Spring 用来针对不同的环境对不同的配置提供支持的
-
在application.properties 文件中添加
-
spring.profiles.active=dev
-
spring.profiles.active=dev
-
生产环境
- 新建文件为:application-dev.properties
-
开发环境
- 新建文件为:application-prod.properties
-
在application.properties 文件中添加