用springmvc去构建一个web项目发布一个helloword的http端口
- 创建一个项目结构(maven/gradle)
- spring的依赖,spring mvc 、servlet api的依赖
- web.xml, DispatcherServlet
- 启动一个Spring mVC的配置,Dispatcher-servlet.xml
- 创建一个Controller 发布一个http请求
-
到底什么是Spring Boot
约定优于配置理念下的一个产物
只要依赖的spring-boot-starter-web的jar,就会自动内置一个tomcat容器(替换)项目结构
- 默认提供了配置文件application.properties
- starter启动依赖 - 如果是一个webstarter ,默认认为你是去构建一个spring mvc的应用.
Spring Boot 和微服务
那为什么Spring Cloud会采用Spring Boot来作为基础框架呢?原因很简单
- Spring Cloud它是关注服务治理领域的解决方案,而服务治理是依托于服务架构之上,所以它仍然
需要一个承载框架 - Spring Boot 可以简单认为它是一套快速配置Spring应用的脚手架,它可以快速开发单个微服务
所以spring cloud的版本和spring boot版本的兼容性有很大关联Spring Boot的特性
- EnableAutoConfiguration 自动装配
- Starter 启动依赖 依赖于自动装配的技术
- Actuator 监控 , 提供了一些endpoint ,http、jmx形式去进行访问, health信息。 metrics
Spring Boot CLI(命令行操作的功能, groovy脚本) 客户端, groovy
@SpringBootApplication
SpringBootApplication注解元注解了几个重要的注解
@ComponentScan
,@EnableAutoConfiguration
,@SpringBootConfiguration同(@Configuration)
```java @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 {};
}
SpringBootConfiguration
```java
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
}
@EnableAutoConfiguration
实现
Actuator
spring-boot-starter-actutor
组件是用来监控springboot应用的健康状态。