springboot配置详解
入口类和@SpringBootApplication
示例代码如下
package com.crazyang;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Created with IntelliJ IDEA.
*
* @Author crazyang
* @Desciption:
* @Date 2018-6-6 9:53
*/
@SpringBootApplication
public class FirstDemoApplication {
public static void main(String[] args) {
SpringApplication.run(FirstDemoApplication.class, args);
}
}
Spring Boot 通常有一个名为*Application的入口类,入口类里有一个main方法,这个main方法就是一个标准的Java应用的入口方法。在main方法中使用 SpringApplication.run(FirstDemoApplication.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 {
@AliasFor(
annotation = EnableAutoConfiguration.class
)
Class<?>[] exclude() default {};
@AliasFor(
annotation = EnableAutoConfiguration.class
)
String[] excludeName() default {};
@AliasFor(
annotation = ComponentScan.class,
attribute = "basePackages"
)
String[] scanBasePackages() default {};
@AliasFor(
annotation = ComponentScan.class,
attribute = "basePackageClasses"
)
Class<?>[] scanBasePackageClasses() default {};
}
@SpringBootApplication注解主要结合了@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan;如果不实用@SpringBootApplication,则可以使用其他三个注解代替。
定制Banner
在Spring Boot启动的时候会有一个默认启动图案,如下图所示:
我们在src/main/resources下新建一个banner.txt.
通过网站http://patorjk.com/software/taag网站生成字符,如敲入的为crazyang,将网站生成的字符赋值到banner.txt中,然后再启动项目即可,如下图所示:
关闭banner
banner可以关闭,具体请自行查看资料。
常规属性配置
Spring Boot启动时会默认读取application.properties配置文件,并会自动在项目中相应位置为配置信息赋值。
实例:
在application.properties中添加如下代码
book.author=crazyang
book.name=spring boot
主程序代码:
package com.crazyang;
import org.springframework.beans.factory.annotation.Value;
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;
/**
* Created with IntelliJ IDEA.
*
* @Author crazyang
* @Desciption:
* @Date 2018-6-6 9:53
*/
@RestController
@SpringBootApplication
public class FirstDemoApplication {
@Value("${book.author}")
private String bookAuthor;
@Value("${book.name}")
private String bookName;
@RequestMapping("/")
String index(){
return "book name is :"+bookName+" and book author is:" + bookAuthor;
}
public static void main(String[] args) {
SpringApplication.run(FirstDemoApplication.class, args);
}
}
运行,访问http://localhost:8080/,效果如下图所示: