用springmvc去构建一个web项目发布一个helloword的http端口

  • 创建一个项目结构(maven/gradle)
  • spring的依赖,spring mvc 、servlet api的依赖
  • web.xml, DispatcherServlet
  • 启动一个Spring mVC的配置,Dispatcher-servlet.xml
  • 创建一个Controller 发布一个http请求
  • 发布到jsp/servlet容器

    到底什么是Spring Boot

    约定优于配置理念下的一个产物

  • 只要依赖的spring-boot-starter-web的jar,就会自动内置一个tomcat容器(替换)项目结构

  • 默认提供了配置文件application.properties
  • starter启动依赖 - 如果是一个webstarter ,默认认为你是去构建一个spring mvc的应用.

    Spring Boot 和微服务

    那为什么Spring Cloud会采用Spring Boot来作为基础框架呢?原因很简单
  1. Spring Cloud它是关注服务治理领域的解决方案,而服务治理是依托于服务架构之上,所以它仍然
    需要一个承载框架
  2. 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 = {

    1. @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
    2. @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应用的健康状态。