Spring Boot是在Spring的基础之上产生的(确切的说是在Spring4.0的版本的基础之上),其中“Boot”的意思就是“引导”,意在简化开发模式,是开发者能够快速的开发出基于Spring的应用。Spring Boot含有一个内嵌的web容器。我们开发的web应用不需要作为war包部署到web容器中,而是作为一个jar包,在启动时根据web服务器的配置进行加载。
https://projects.spring.io/spring-boot/
https://start.spring.io/ 构建Spring Boot的页面
server.port=8888 |
msg=Hello World |
@Value("${msg}") private String msg; |
hello=bjsxt msg=Hello World ${hello} |
@Value("${msg}") private String msg; |
num=${random.int} msg=Hello World ${num} |
@Value("${msg}") private String msg; |
用处:配置随机值,在程序中如果有一些运算需要一个随机值,那么可以使用该方式来生成。注意,只生成一次。
server.port=${random.int[1024,9999]} |
用处:在SpringCloud的微服务中,我们是不需要记录IP与端口号的。那么我们也就不需要去维护服务的端口号。让他随机生成就可以了。
是Spring Boot中新增的一种配置文件格式。特点:具备天然的树状结构
xml version="1.0" encoding="UTF-8" ?> <configuration>
<property name="LOG_HOME" value="${catalina.base}/logs/" />
<appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n pattern> layout> appender>
<appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/server.%d{yyyy-MM-dd}.logFileNamePattern> <MaxHistory>30MaxHistory> rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n pattern> layout>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MBMaxFileSize> triggeringPolicy> appender>
<root level="info"> <appender-ref ref="Stdout" /> <appender-ref ref="RollingFile" /> root>
configuration> |
profile:代表的就是一个环境变量
语法结构:application-{profile}.properties
application-dev.properties 开发环境
application-test.properteis 测试环境
application-prod.properteis 生产环境
java -jar xxx.jar --spring.profiles.active={profile}
java -jar springboot-helloworld-0.0.1-SNAPSHOT.jar --spring.profiles.active=
test|dev|prod
@SpringBootApplication:代表是SpringBoot的启动类。
@SpringBootConfiguration:通过bean对象来获取配置信息
@Configuration:通过对bean对象的操作替代spring中xml文件
@EnableAutoConfiguration:完成一些初始化环境的配置。
@ComponentScan:来完成spring的组件扫描。替代之前我们在xml文件中配置组件扫描的配置
@RestController:1,表示一个Controller。2,表示当前这个Controller下的所有的方法都会以json格式的数据响应。
代码
@ControllerAdvice public class MyControllerAdvice {
@ResponseBody @ExceptionHandler(value=java.lang.Exception.class) public Map Map map.put("code", 500); map.put("msg", "出错了。"); return map; }
@ResponseBody @ExceptionHandler(value=java.lang.NullPointerException.class) public Map Map map.put("code", -500); map.put("msg", "空指针异常"); return map; }
@ResponseBody @ExceptionHandler(value=com.bjsxt.springboothelloworld.exception.ApplicationException.class) public Map Map map.put("code", -800); map.put("msg", ex.getMessage()); return map; }
} |
ID |
描述 |
是否需要鉴权 |
actuator |
为其他端点提供“发现页面”。要求Spring HATEOAS在classpath路径上。 |
需要 |
auditevents |
陈列当前应用程序的审计事件信息。 |
需要 |
autoconfig |
展示自动配置信息并且显示所有自动配置候选人以及他们“被不被”应用的原因。 |
需要 |
beans |
显示应用程序中所有Spring bean的完整列表。 |
需要 |
configprops |
显示所有配置信息。 |
需要 |
dump |
dump所有线程。 |
需要 |
env |
陈列所有的环境变量。 |
需要 |
flyway |
Shows any Flyway database migrations that have been applied. |
需要 |
health |
显示应用程序运行状况信息 |
不需要 |
info |
显示应用信息。 |
不需要 |
loggers |
显示和修改应用程序中的loggers配置。 |
需要 |
liquibase |
显示已经应用的任何Liquibase数据库迁移。 |
需要 |
metrics |
显示当前应用程序的“指标”信息。 |
需要 |
mappings |
显示所有@RequestMapping的url整理列表。 |
需要 |
shutdown |
关闭应用(默认情况下不启用)。 |
需要 |
trace |
显示跟踪信息(默认最后100个HTTP请求)。 |
需要 |
服务端其实也是一个SpringBoot项目
https://github.com/codecentric/spring-boot-admin
修改pom文件添加Spring Boot Admin 坐标
<dependency> <groupId>de.codecentricgroupId> <artifactId>spring-boot-admin-starter-serverartifactId> <version>1.5.7version> dependency> |
@SpringBootApplication @EnableAdminServer public class SpringbootServerApplication {
public static void main(String[] args) { SpringApplication.run(SpringbootServerApplication.class, args); } } |
其实客户端就是我们需要监控的工程。
<dependency> <groupId>de.codecentricgroupId> <artifactId>spring-boot-admin-starter-clientartifactId> <version>1.5.7version> dependency> |
management.security.enabled=false #http://localhost:9090 表示是Spring Boot Admin 服务单的IP地址以及端口号 spring.boot.admin.url: http://localhost:9090 |